- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这有点长,但我需要代码示例来说明我的困惑。之后我对以下问题的答案感兴趣:
require('module')
而不是 require('../../src/module')
或 require('./module')
? ./index.js
在 spec/specs.js
不重复工作? (并阻止 src/app.js
运行,因为它是一个入口模块)。 app.js
和
spec/specs.js
)整个系统分崩离析。我会解释:
.
├── Gruntfile.js
├── index.js (generated via grunt-browserify) [1]
├── lib
│ ├── jquery
│ │ └── jquery.js [2]
│ └── jquery-ui
│ └── jquery-ui.js [3]
├── spec
│ ├── specs.js (generated via grunt-browserify) [4]
│ └── src
│ ├── spec_helper.js (entry)
│ └── module_spec.js (entry)
└── src
├── app.js (entry)
└── module.js
src/app.js
) 并执行代码遍历以捆绑所有必需的模块。 jquery
设置别名. jquery-ui
没有垫片(在 var $ = require('jquery')
之后需要)。 spec/src
中的所有帮助程序和规范文件作为入口模块。 browserify: {
dist: {
files: {
'index.js': ['src/app.js']
}
}
}
// in app.js
var MyModule = require('./module'); // <-- relative path required?!
browserify: {
options: {
shim: {
jquery: {
path: 'lib/jquery/jquery.js',
exports: '$'
}
},
noParse: ['lib/**/*.js'],
alias: [
'lib/jquery-ui/jquery-ui.js:jquery-ui'
]
},
dist: {
files: {
'index.js': ['src/app.js']
}
}
}
// in app.js
var $ = require('jquery');
require('jquery-ui');
var MyModule = require('./module');
options: {
shim: {
jquery: {
path: 'lib/jquery/jquery.js',
exports: '$'
}
},
noParse: ['lib/**/*.js'],
alias: [
'lib/jquery-ui/jquery-ui.js:jquery-ui'
]
},
dist: {
files: {
'app.js': 'src/app.js'
}
},
spec: {
files: {
'spec/specs.js': ['spec/src/**/*helper.js', 'spec/src/**/*spec.js']
}
}
// in app.js
var $ = require('jquery');
require('jquery-ui');
var MyModule = require('./module');
// in spec/src/module_spec.js
describe("MyModule", function() {
var MyModule = require('../../src/module'); // <-- This looks like butt!!!
});
require('module')
而不是 require('../../src/module')
或 require('./module')
? ./index.js
在 spec/specs.js
不重复工作? (并阻止 src/app.js
运行,因为它是一个入口模块)。 最佳答案
简单回答:
最简单的是使用paths
browserify 的选项。我使用它几个月并取得了巨大的成功。我什至制作了一个使用此功能的入门工具包:https://github.com/stample/gulp-browserify-react-phonegap-starter
var b = browserify('./app', {paths: ['./node_modules','./src/js']});
paths - require.paths array to use if nothing is found on the normal node_modules recursive walk
src/js/modulePath/myModule.js
中有文件这不会让你写
require("myModule")
无处不在,而是
require("modulePath/myModule")
,来自您的任何其他源文件。
paths
Browserify 的选项因此是
NODE_PATH
的镜像NodeJS 的环境变量行为。
NODE_PATH
选项在 NodeJS 中已弃用,因此它在 Browserify 中也已弃用,并且可以在下一个版本中删除。
You are highly encouraged to place your dependencies locally in node_modules folders. They will be loaded faster, and more reliably.
Oliver Leics: is NODE_PATH deprecated?
Ben Noordhuis (ex core NodeJS contributor): No. Why do you ask?
paths
选项或将您的代码放入
node_modules
喜欢官方文档和
Browserify author recommends .
node_modules
中的想法。因为我只是将整个文件夹排除在我的源代码管理之外。我使用
paths
现在选择了几个月,根本没有任何问题,而且我的构建速度非常好。
node_modules
的解决方案可能很方便,但不幸的是,我们有开发人员在这里使用 Windows...
paths
的情况选项 :当您开发发布在 NPM 存储库上的库时,其他应用程序将需要该库。您真的不希望这些库客户端仅仅因为您想避免库中的相对路径 hell 而必须设置特殊的构建配置。
关于gruntjs - 如何管理多个 grunt-browserify 包中的相对路径别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20158401/
我正在尝试找到一种无需互联网访问即可安装 gruntjs 的方法。有没有办法下载安装程序?堆栈溢出让我很难理解这个问题的格式,我不确定还能写什么。这是一个非常简单的请求。 最佳答案 有点。您有时需要访
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 8年前关闭。 Improve thi
首先我还没有真正理解什么gruntjs确实如此,但我有一些想法。我希望通过了解它的用途和用途,我会明白它的目的。任何人都可以向我解释什么是 gruntjs,为什么使用它,以及它的用途。 Is it b
有没有办法自动将所有 bower 安装的库合并和缩小到 1 个文件中? 首先我尝试了最基本的方法:结合所有 .js来自所有子目录的文件: uglify: { options: {compres
当 grunt.js 文件发生更改时,是否可以重新启动 grunt watch 用例:我现在正在构建我的 grunt 进程并不断更改 grunt.js 文件,我必须重新启动 grunt.js 以查看它
我正在使用带有 grunt-eslint 插件的 grunt。这是一个更大的 grunt 任务的一部分,该任务首先找到更改的文件并对它们执行各种任务。如果没有更改任何 JS 文件(例如,如果我只更改
我正在尝试将 PostCSS 插件 autoprefixer 与 grunt 一起使用。我浏览了许多相关的文章和 Stackoverflow 答案,但我仍然收到“警告:[object Object]
我目前正在使用 usemin 任务来执行 concat 和 uglify 任务。但是,我没有从 concat/uglify 任务中获得任何输出。没有看到任何错误或警告。如何获得结果输出 dist/ap
我已经安装了Node JS。如何检查是否安装了grunt?它是否安装得井井有条,还是驻留在特定的文件夹中? 例如,node -v会告诉我我已安装v0.10.33,但找不到Grunt的任何类似命令。 最
我使用Yeoman进行了角度设置。在我的main.html(加载到index.html上的 View )下,我在样式文件夹中添加了一个引用的css文件。 我用构建注释将其包围起来,以便可以在最小化的同
当我运行grunt服务器时,将进行文件编辑,并通过livereload刷新浏览器。 当我运行grunt测试时,它将运行一次并关闭。 可以通过运行来模拟此行为 yo angular --minsafe
我目前正在尝试将 Grunt 文件转换为 Gulp 文件。我的第一次尝试是使用一个非常简单的文件,它只运行 JSHint 和 Mocha,并具有监视模式。我的第一个结果是……嗯……令人失望。 我遇到了
我正在将yeoman用于项目。 基本上它可以正常工作,但是在构建过程中,我想将我的images文件夹移动到其他地方。 因此,我加载了grunt-contrib-copy任务,这使我可以执行此任务。但不
我以为有办法做到这一点,而我以前偶然发现它。 我已经阅读了这些答案,但它们并不是我在说的: Programmatically pass arguments to grunt task? Grunt c
我已经使用 sudo npm install grunt 安装了 grunt,但现在无法删除它。 我已经尝试过: $ sudo npm uninstall grunt 但它给了我一个警告: npm W
我正在使用与浏览器同步的grunt插件,它正在工作,但是与实时重新加载相比,它非常慢。 保存文件后,浏览器开始刷新页面大约需要3秒钟。我不确定这是否与浏览器同步,本地主机有关,还是浏览器同步的典型行为
我有一个 html 文件,其中包含对 js 文件的引用。我想解析它,提取引用的 js 文件列表,并提供 contrib-concat 或任何其他任务。有没有一种方便的方法可以使用一个 grunt 任务
我收到此错误: Warning: Unable to write file (Error code: EISDIR) 我正在尝试复制目录中的所有文件和子文件夹。 当我省略 ** 时,以下内容有效,但我
我有一个基于 PHP 的项目,无法在 grunt-php 上运行。相反,我使用 grunt-exec运行我的 MAMP 服务器进行开发。 exec: { serverup: { comma
我在我的项目和karma中使用了AngularJS来测试。然后我这样配置 karma : config.set({ basePath: '../', frameworks: ['jas
我是一名优秀的程序员,十分优秀!