jspm / ES6编译错误,包位置不正确

时间:2015-08-26 22:47:26

标签: javascript gulp ecmascript-6 babeljs jspm

我很难让jspm_packages在我jspm的{​​{1}}配置中正常工作。我正在EM6(巴贝尔引擎)中编写应用程序。

我有一个gulp文件,将我的ES6 javascript放到名为packages.json的文件夹中:

.tmp/scripts

然后是一个捆绑任务,应该将gulp.task('transpile:app', ['templates'], function() { return gulp.src('app/scripts/**/*.js') .pipe($.babel({ sourceMap: true })) .pipe(gulp.dest('.tmp/scripts')); }); 中的文件转换为名为.tmp的文件夹:

dist

这就是失败的地方。

运行// Bundle javascripts gulp.task('bundle:app', function() { return gulp.src('') .pipe($.shell('jspm bundle-sfx app dist/scripts/app.js --minify --skip-source-maps')); }); 会提示此错误:

jspm bundle-sfx app dist/scripts/app.js --minify --skip-source-maps'

奇怪的是warn jspm_packages must be specified in the package.json within the baseURL for paths to resolve correctly. Building the single-file sfx bundle for app... err Error: ENOENT, open '/Users/connorblack/git/**********/jspm_packages/github/marionettejs/backbone.marionette@2.4.2.js' at Error (native) 的这个文件路径正在查看它应该位于的两个目录,从而提示jspm_packages错误。

我稍微进入了文档,发现您可以在ENOENT中设置"packages"属性,这就是我所做的,这就是我当前的文件: / p>

package.json

我尝试了多种变体,但最终都出现了类似的错误。前缀... "jspm": { "directories": { "baseURL": ".tmp/scripts", "lib": "app", "packages": "jspm_packages" }, ... 可以进一步提升我的文件系统,但由于该命令已经在上面找到两个目录,所以这并没有帮助。

如您所料,完全从我的../../删除该属性会删除警告并更改package.json

ENOENT

现在它似乎在我的 Building the single-file sfx bundle for app... err Error: ENOENT, open '/Users/connorblack/git/********/*********/skeleton/.tmp/scripts/jspm_packages/github/marionettejs/backbone.marionette@2.4.2.js' at Error (native) jspm_packages)下方寻找baseURL文件夹,这是我的gulp进程在转换之前放置我的应用程序脚本的地方ES6正常JS。

我的智慧在这里结束了。我无法让.tmp/scripts进程正确找到jspm,因此我无法编译我的应用。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题, 当我在尝试时

jspm bundle app.js app/app.bundle.js 

但我改变了

  "jspm": {
    "directories": {
      "baseURL": "app",
      "packages": "jspm_packages"
    },

到此..

  "jspm": {
    "directories": {
      "baseURL": "app",
      "packages": "app/jspm_packages"
    },

捆绑开始工作......