我需要使用webpack Bundle中的DefinePlugin注入我的process.env变量,我在webpack配置中得到以下代码:
plugins: [
new webpack.DefinePlugin({
'process.env': JSON.stringify(process.env)
}),
ionicWebpackFactory.getIonicEnvironmentPlugin(),
ionicWebpackFactory.getCommonChunksPlugin()
],
在我的package.json中,我已经得到了这个配置:
"@ionic/app-scripts": "3.1.9",
"@types/jasmine": "^2.8.6",
"@types/node": "^9.6.6",
...
"html-loader": "^0.5.5",
....
"null-loader": "^0.1.1",
"ts-loader": "^4.0.0",
"ts-node": "^6.0.0",
"tslint": "^5.9.1",
"tslint-eslint-rules": "^5.1.0",
"typescript": "~2.6.2",
"webpack": "^4.6.0"
},
"config": {
"ionic_webpack": "./config/webpack.config.js"
},
我有一个使用插件注入的process.env的服务:
import { Injectable } from '@angular/core';
declare var process: {
env: any
};
@Injectable()
export class ConfigurationService {
但是当我使用yarn或npm进行编译时,我发现了以下错误:
[10:28:04] ionic-app-script task: "build"
[10:28:04] TypeError: Cannot read property 'compilation' of undefined
TypeError: Cannot read property 'compilation' of undefined
at DefinePlugin.apply ...\node_modules\webpack\lib
\DefinePlugin.js:42:18)
at Compiler.apply ( ...\node_modules\tapable\lib\Tapable.js:375:16)
我在谷歌找不到任何类似的问题。 谢谢你的帮助。
于连。
答案 0 :(得分:2)
我在这里遇到了同样的错误。为了解决这些问题,我要做的事情是:确保在devDependencies
中添加了所有加载程序,然后将这些加载程序升级为最新版本。
请再次检查。
答案 1 :(得分:0)
尝试这样做
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
})