最新的 1.7 Ember beta 打破了我的 gulp-browserify 任务(如下配置),但有以下例外:
Error: browserify-shim needs to be passed a proper browserify instance as the first argument.
Gulp 一直在愉快地浏览 Ember 直到 1.7(并且在最新的 1.6 中继续这样做,使用下面的配置)。我在 1.7 的发行说明中注意到模块系统经历了一些剧变。
我的问题是:这是 Ember(或者 Browserify)中的一个合法错误吗?或者,Ember 是否不再打算与 browserify 等工具一起使用,转而支持其他特定方法?
确切的配置:
包.json:
(注意,这个特定站点已经通过标准脚本标签嵌入了 jQuery,因此需要 browserify-shim 和global:
jquery dep 上的符号。)
{
"browser": {
"handlebars": "./scripts/lib/handlebars-v1.3.0.js",
"ember": "./scripts/lib/ember-1.7.min.js"
},
"browserify-shim": {
"jquery": "global:jQuery",
"handlebars": "Handlebars",
"ember": {
"exports": "Ember",
"depends": [
"handlebars:Handlebars"
]
}
},
"browserify": {
"transform": [
"browserify-shim"
]
},
"devDependencies": {
"browserify": "^4.1.11",
"browserify-shim": "^3.5.0",
"gulp": "^3.8.1",
"gulp-browserify": "^0.5.0"
}
}
gulpfile.js:
var gulp = require('gulp'),
browserify = require('gulp-browserify');
gulp.task('scripts', function () {
gulp.src([
'./app.js',
])
.pipe(browserify({
insertGlobals: false,
debug: false
})).pipe(gulp.dest('./Scripts/build'));
});
gulp.task('default', ['scripts']);
应用程序.js:
var Ember = require('ember');
基本复制:
在测试目录中:
npm install gulp browserify gulp-browserify browserify-shim
- 确保存在到 deps 的路径:
"handlebars": "./scripts/lib/handlebars-v1.3.0.js"
"ember": "./scripts/lib/ember-1.7.min.js"
app.js
在上面添加我的示例- 添加我的
packages.json
上面 - 添加我的
gulpfile.js
上面 - 跑
gulp
- 将 Ember 1.7 换成 1.6 以取得成功。
谢谢!