【问题标题】:Angular2 + Webpack DefinePlugin not working?Angular2 + Webpack DefinePlugin 不起作用?
【发布时间】:2016-11-21 15:03:24
【问题描述】:

我尝试从 angular.io 网站上的教程中运行 Angular2 应用程序

Angular2 with Webpack Tutorial on angular.io

安装运行良好(有一些小问题,它是 Ubuntu 14.04 LTS)但我到了 npm start 任务工作、服务器工作,甚至该应用程序在浏览器中运行,到目前为止一切顺利。 但是

每次我运行 npm start,我都会在终端和浏览器控制台中收到以下 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 中,使用以下代码创建了一个 var:

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

ma​​in.tspolyfills.ts 中,var 被以下引用:

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

但似乎Typings 不知道如何将这些使用 webpack.DefinePlugin 创建的变量注入到编译后的 Javascript 中(这就是我的想法,我可能错了)

如果有人遇到同样的问题,或者有人可以帮助我解决这个问题,我将非常感激! (所有代码都来自教程,所以任何尝试过教程的人都可能遇到过同样的问题,我猜?!)

谢谢!

【问题讨论】:

    标签: node.js angular webpack


    【解决方案1】:

    我在这里遇到了同样的问题(做同样的教程)。为了解决这个问题,我在 typings.json 所在的同一文件夹中创建了一个名为 typings.d.ts 的文件(编译器默认包含此文件),并在其中添加了以下声明:

    declare var process: any;
    

    希望对您有所帮助! :)

    【讨论】:

    • 将为您举办派对
    • @types/node 添加到您的devDependencies,它会为您解决这个问题
    猜你喜欢
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多