Ошибка компиляции jspm/ES6, неверное расположение пакетов

Мне трудно заставить jspm_packages работать правильно в моей конфигурации jspm в моем packages.json. Я пишу приложение в EM6 (движок Babel).

У меня есть файл gulp, который помещает мой javascript ES6 в папку с именем .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"
    },
...

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

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

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


person Connor Black    schedule 26.08.2015    source источник
comment
Можешь вместо этого попробовать jspm bundle-sfx main dist/scripts/app.js --minify --skip-source-maps?   -  person vanthome    schedule 28.08.2015


Ответы (1)


У меня возникла аналогичная проблема, когда я пытался

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

Но я тогда изменил

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

к этому ..

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

и комплектация заработала...

person judek    schedule 03.05.2016