2015-08-26 6 views
0

Мне очень трудно получить jspm_packages, чтобы правильно работать в моей конфигурации jspm в моем packages.json. Я пишу приложение в EM6 (механизм Babel).Ошибка компиляции 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.

Я нырнул немного в документы, и обнаружил, что вы можете установить атрибут "packages" в вашем package.json, что то, что я сделал, и это то, что мой текущий файл выглядит следующим образом:

... 
"jspm": { 
    "directories": { 
     "baseURL": ".tmp/scripts", 
     "lib": "app", 
     "packages": "jspm_packages" 
    }, 
... 

I «Пробовал несколько вариантов, но все они имеют аналогичную ошибку. Префикс ../../ делает шаг вперед по моей файловой системе, но поскольку команда уже ищет два каталога выше, это не помогает.

Как и следовало ожидать, удаление атрибута целиком из моих 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, и поэтому я не могу скомпилировать свое приложение.

Любая помощь была бы принята с благодарностью.

+0

Можете ли вы попробовать «jspm bundle-sfx main dist/scripts/app.js --minify --skip-source-maps' вместо этого? – vanthome

ответ

1

я получал подобную проблему, , когда я пытался

jspm bundle app.js app/app.bundle.js 

Но потом я изменил

"jspm": { 
    "directories": { 
     "baseURL": "app", 
     "packages": "jspm_packages" 
    }, 

на это ..

"jspm": { 
    "directories": { 
     "baseURL": "app", 
     "packages": "app/jspm_packages" 
    }, 

и комплектации начали работы ...