Ошибка компиляции jspm/ES6, неверное расположение пакетов
Мне трудно получить jspm_packages
правильно работать в моем jspm
конфигурация в моем packages.json
, Я пишу приложение в EM6 (движок Babel).
У меня есть файл 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"
},
...
Я пробовал несколько вариантов, но все они заканчиваются с похожей ошибкой. Приставка ../../
идет дальше по моей файловой системе, но так как команда уже ищет две директории выше, это не помогает.
Как и следовало ожидать, удаление атрибута полностью из моего 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
и поэтому я не могу скомпилировать свое приложение.
Любая помощь будет принята с благодарностью.
1 ответ
У меня была похожая проблема, когда я пытался
jspm bundle app.js app/app.bundle.js
Но я тогда изменился
"jspm": {
"directories": {
"baseURL": "app",
"packages": "jspm_packages"
},
к этому..
"jspm": {
"directories": {
"baseURL": "app",
"packages": "app/jspm_packages"
},
и комплектация начала работать...