Javascript 在带有Web包的TypeScript应用程序中设置环境配置
我已经介绍了几种解决方案,包括下面列出的解决方案:Javascript 在带有Web包的TypeScript应用程序中设置环境配置,javascript,angular,typescript,webpack,Javascript,Angular,Typescript,Webpack,我已经介绍了几种解决方案,包括下面列出的解决方案: 我习惯于使用诸如查找和更新应用程序的配置文件之类的内容,用环境中设置的内容替换@@SERVER\u URL之类的内容 通过这种方式,我可以执行导出服务器URL=something或使用服务器URL=something gulp build运行脚本来设置配置 我尝试了以下所有方法: 使用转换加载程序plusenvify 这是第一个问题的建议,但对我来说不起作用,因为: Module build failed: Error: Parse E
配置
文件之类的内容,用环境中设置的内容替换@@SERVER\u URL
之类的内容
通过这种方式,我可以执行导出服务器URL=something或使用服务器URL=something gulp build
运行脚本来设置配置
我尝试了以下所有方法:
使用转换加载程序
plusenvify
这是第一个问题的建议,但对我来说不起作用,因为:
Module build failed: Error: Parse Error: Line 1: Illegal import declaration
at throwError (ngapp/node_modules/esprima-fb/esprima.js:2823:21)
似乎esprima fb
正在使用一个import
声明,该声明由于某种原因不能被Webpack使用。也不再维护,因此这可能是一条错误的道路
使用DefinePlugin
我补充说:
module: {plugins: [new webpack.DefinePlugin({"process.env.SERVER_URL": "something"})]}
这似乎被忽略了,或者至少,process.env.SERVER\uURL
没有插入到我的typescript文件中。当Iconsole.log(process.env)
时,它会发出一个空对象
使用--为网页定义
我更新了我的npm
脚本:
"start": "webpack-dev-server --define process.env.SERVER_URL=${SERVER_URL}"
然而,这只是将我的代码中的process.env.SERVER\u URL
替换为一个文本“${SERVER\u URL}”
,而不是插入到npm脚本中
在使用Webpack构建的TypeScript应用程序中使用环境变量是否有一种简单/方便的方法(或者在这一点上确实有任何方法)
我的网页包设置基本上就是列出的内容。您是否尝试过列出的第二个问题中提到的EnvironmentPlugin
?在运行时使用console.log进行测试无法使用DefinePlugin。似乎使用字符串匹配来替换得到服务的代码。对于新的webpack.DefinePlugin({MY_常量:JSON.stringify(“something”)}将在所有的TypeScript文件中用“something”替换文本MY_常量。