2016-10-12 2 views
2

в этой настройке, как вы пересылаете библиотеку углов2, импортируемую из сгенерированных файлов ngfactory?Webpack + Angular2 AOT: Uncaught SyntaxError: Неожиданный импорт токена

текущее приложение представляет собой сочетание WebPack + AOT поваренной книги на основе угловых Документах

angular.io/docs/ts/latest/cookbook/aot-compiler.html
angular.io/docs/ ц/последний/руководство/webpack.html

у меня есть рабочие ДОУ, где вы можете повторить вопрос от этого репо:

https://github.com/jetlogs/Angular2-AOT-Localization

после того, как вы сделали компиляцию/пакетирование, года и может открыть 2 файла:

без aot.html - это версия, не АОТ того же приложения, и он загружает штраф
aot.html - этот файл не удается с:

ng_module_factory.js?95b1:13 Uncaught SyntaxError: Unexpected token import

Ожидаемое поведение
ожидаемое поведение является то, что aot.html и не aot.html должны иметь такое же поведение

Минимальное воспроизведение проблемы с инструкциями

клон репо, то запустить эти команды на рабочем каталоге:

npm install 
npm postinstall 
npm run build 

затем открыть aot.html воспроизвести проблему

Есть ли способ, как исправить операторы импорта из импортированные библиотеки angular2? Благодаря

UPDATE:

Я пытался transpiling исходных файлов angular2, которые находятся в ES2015 с помощью Babel-погрузчик:

{ 
      test: /\.js$/, 
      loader: 'babel', 
      include: [ 
       /node_modules(\\|\/)@angular/ 
      ], 
      exclude: [ 
       /\.umd\.js$/ 
      ], 
      query: { 
       presets: ['es2015'] 
      } 
     }, 

теперь компилируется без проблем с ES6 несовместимостями, однако , теперь он встречает новую ошибку только для aot.html:

core.umd.js?e2a5:3272Uncaught Error: No provider for NgZone!

какой-либо причине, почему transpiled угловые2 исходные коды, на которые ссылается компилятор AOT, вызывают проблемы с NgZone?

Я обновил репо выше, чтобы отразить мои последние изменения

UPDATE2: 10/13/16

Обновлен угловые 2.1
все тот же вопрос

ответ

0

Синтаксис System.import используется в ng_module_factory.js - загрузка модуля в стиле ES6. Webpack 1, который вы, вероятно, используете, не поддерживает этот синтаксис.

Обходной путь может заключаться в том, чтобы перевести модули Angular ES6 в ES5 с помощью синтаксиса require(), но вы уже пробовали это без успеха.

Однако вы можете рассмотреть возможность перехода на Webpack 2, который полностью поддерживает импорт стилей ES6 и очень близок к стабильному выпуску. Компиляция работала для меня таким образом, не меняя ничего, кроме конфигурации webpack, которая использует новый синтаксис для некоторых частей.

+0

был в состоянии решить это давно, переключившись на webpack2. –

0

Для меня это было неправильно импорт генерируется IDE:

import { Component, Output } from "@angular/core/src/metadata/directives";

Вместо:

import { Component, Output } from "@angular/core";

 Смежные вопросы

  • Нет связанных вопросов^_^