我很难让jspm_packages
在我的packages.json
的jspm
配置中正常工作。我正在写EM6(巴贝尔引擎)的应用程序。jspm/ES6编译错误,软件包位置不正确
我有一个地方我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/[email protected]'
at Error (native)
奇怪的是,jspm_packages
此文件路径正在寻找两个目录上面,它应该是,由此促使ENOENT
错误。
我一头有点入文档,并发现你可以在你package.json
,这就是我所做的设置"packages"
属性,这就是我现在的文件看起来像:
...
"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/[email protected]'
at Error (native)
它现在似乎在寻找jspm_packages
文件夹下面我baseURL
(.tmp/scripts
),其是我的gulp进程将ES6转换为普通JS之前放置我的应用程序的脚本的地方。
我在我的智慧结束在这里。我似乎无法得到jspm
进程正确找到jspm_packages
,因此我无法编译我的应用程序。
任何帮助将不胜感激。
你可以试试'jspm bundle-sfx main dist/scripts/app.js --minify --skip-source-maps'吗? – vanthome