我很难让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
,因此我无法编译我的应用。
非常感谢任何帮助。
答案 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"
},
捆绑开始工作......