2016-07-18 7 views
2

Я попытался запустить приложение Angular2 из учебника на angular.io сайтеAngular2 + Webpack DefinePlugin не работает?

Angular2 with Webpack Tutorial on angular.io

Установка работала хорошо (с несколькими икает, это Ubuntu 14.04 LTS), но я попал в точку, где npm start задача работает, сервер работает, и даже приложение работает в браузере, насколько это хорошо. Но

Everytime я бегу НПМ начать, я получаю следующие 2 ошибки в терминале, и в консоли браузера:

ERROR in ./src/polyfills.ts 
(4,5): error TS2304: Cannot find name 'process'. 

ERROR in ./src/main.ts 
(7,5): error TS2304: Cannot find name 'process'. 

Если вы посмотрите на учебник, это объясняется, как создайте конфигурацию webpack, есть webpack.common.js, webpack.prod.js и webpack.dev.js. В webpack.prod.js, вар создается с помощью этого кода:

const ENV = process.env.NODE_ENV = process.env.ENV = 'production'; 
new webpack.DefinePlugin({ 
    'process.env': { 
     'ENV': JSON.stringify(ENV) 
    } 
}) 

В main.ts и в polyfills.ts вар ссылается следующим образом:

if (process.env.ENV === 'production') { 
    enableProdMode(); 
} 

но кажется, что Typings не знает, как вводить эти переменные, созданные с помощью webpack.DefinePlugin в скомпилированный Javascript (вот что я думаю, я, возможно, ошибаюсь)

Если кто-то столкнулся с той же проблемой, или кто-нибудь может мне помочь в этом, я был бы очень благодарен! (Весь код из учебника, поэтому любой, кто попробовал учебник, возможно, столкнулся с той же проблемой, я думаю ?!)

Спасибо!

ответ

13

У меня была такая же проблема здесь (с тем же учебником). Чтобы решить эту проблему, я создал файл с именем typings.d.ts на одной и той же папке, где typings.json является (этот файл будет включен по умолчанию компилятором) и добавил следующее заявление к нему:

declare var process: any; 

Надежда помогает! :)

+0

Это должно быть отмечено как ответ, спасибо, человек – kartsims

+0

даст вам вечеринку для этого –

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