node.js - Angular2 + Webpack DefinePlugin 不工作?

标签 node.js angular webpack

我尝试从 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 创建的这些变量注入(inject)到已编译的 Javascript 中(这就是我的想法,我可能错了)

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

谢谢!

最佳答案

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

declare var process: any;

希望对您有所帮助! :)

关于node.js - Angular2 + Webpack DefinePlugin 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38446313/

相关文章:

javascript - 在 Node.js 中调整图像大小的简单方法?

javascript - 在 NgRx 应用程序中对对象使用 Array.reduce 函数

webpack - 使用 Webpack 替换/别名文件

node.js - 使用 NodeJs Mongo 和 Express 保留更新时的哈希密码

javascript - 使用动态字符串附加 JSON 对象键

angular2组件过渡动画

javascript - 使用 webpack 在 Laravel 5 中将插件安装到 CKEditor 5

javascript - 使用 webpack 转译 ES6 模块后,模块未导出

node.js - 需要内存中的模块而不是磁盘中的模块 - 这可能吗?

angular - 升级到 Angular 9 后,编译时间大幅增加