我很難讓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