[英]jspm/ES6 compile error, packages location incorrect
我有困难的时候得到jspm_packages
在我的正常工作jspm
在我的配置packages.json
。 我正在用EM6(Babel Engine)编写应用程序。
我有一个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
错误。
我对文档做了一些研究,发现可以在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/backbone.marionette@2.4.2.js'
at Error (native)
现在,它似乎正在我的baseURL
( .tmp/scripts
)下寻找jspm_packages
文件夹,这是我的baseURL
进程在将应用程序的脚本从ES6转换为普通JS之前放置它的位置。
我在这里机智。 我似乎无法使jspm
进程正确找到jspm_packages
,因此无法编译我的应用程序。
任何帮助将不胜感激。
我在尝试时遇到了类似的问题
jspm bundle app.js app/app.bundle.js
但后来我改变了
"jspm": {
"directories": {
"baseURL": "app",
"packages": "jspm_packages"
},
对此..
"jspm": {
"directories": {
"baseURL": "app",
"packages": "app/jspm_packages"
},
捆绑开始工作了...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.