Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在带有Web包的TypeScript应用程序中设置环境配置_Javascript_Angular_Typescript_Webpack - Fatal编程技术网

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
运行脚本来设置配置

我尝试了以下所有方法:

使用
转换加载程序
plus
envify
这是第一个问题的建议,但对我来说不起作用,因为:

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文件中。当I
console.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_常量。