我很难jspm_packages
在. 我正在用 EM6(babel 引擎)编写一个应用程序。jspm
packages.json
我有一个 gulp 文件,将我的 ES6 javascript 放到一个名为.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"
属性package.json
,这就是我所做的,这就是我当前文件的样子:
...
"jspm": {
"directories": {
"baseURL": ".tmp/scripts",
"lib": "app",
"packages": "jspm_packages"
},
...
我尝试了多种变体,但它们都以类似的错误告终。在我的文件系统上加前缀../../
步骤,但是由于该命令已经在查找上面的两个目录,因此这无济于事。
如您所料,从 my 中完全删除该属性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
( .tmp/scripts
) 下面的文件夹,这是我的 gulp 进程在从 ES6 转换为普通 JS 之前放置我的应用程序脚本的位置。
我在这里束手无策。我似乎无法jspm
正确找到该过程jspm_packages
,因此我无法编译我的应用程序。
任何帮助将不胜感激。