5

最新的 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 以取得成功。

谢谢!

4

0 回答 0