Javascript 如何将environment.json文件复制到输出文件夹,并将输出文件与Webpack 4一起使用?

Javascript 如何将environment.json文件复制到输出文件夹,并将输出文件与Webpack 4一起使用?,javascript,angularjs,webpack,octopus-deploy,Javascript,Angularjs,Webpack,Octopus Deploy,我们有一个具有多个环境的应用程序,即将有多个供应商。我知道典型的流程是运行webpack-env.NODE_env=myenvironment,但是,这将很快变得非常低效 最终,我的简单目标是将environment.json文件复制到output文件夹并使用它,这样我就可以在Octopus Deploy中执行转换,而不必运行多个构建 换句话说,我想利用一个environment.json文件在Octopus Deploy中提供变量替换。下面是一个示例environment.json: 现在在A

我们有一个具有多个环境的应用程序,即将有多个供应商。我知道典型的流程是运行webpack-env.NODE_env=myenvironment,但是,这将很快变得非常低效

最终,我的简单目标是将environment.json文件复制到output文件夹并使用它,这样我就可以在Octopus Deploy中执行转换,而不必运行多个构建

换句话说,我想利用一个environment.json文件在Octopus Deploy中提供变量替换。下面是一个示例environment.json:

现在在AngularJS代码中,我正在配置利用这些值的常量:

从“../../environment.json”导入*作为环境; console.logenvironment.baseUrl;//http://myapp.com 角度。模块'app' .恒定的“环境”,环境; 到目前为止,一切顺利

问题是,现在如果我修改dist/environment.json中的值,请注意这是在输出文件夹中,它不会更新值。例如,如果我将baseUrl的值更改为http://myapp-dev.com,console.log仍将打印http://myapp.com.

以下是我的webpack.config.js中的相关代码:

规则

... { 测试:/\.json$/,, 使用:“json加载程序”, 排除:[/environment\.json$/] }, ... 插件

... 新的CopyWebpackPlugin[{ from:'environment.json' }, ... 上面的代码成功地将environment.json文件复制到输出文件夹,但输出文件夹中的其余代码没有使用它。无论出于何种原因,它似乎仍然与webpack耦合。

CopyWebpackPlugin只是复制了一个文件-此处不再发生任何事情,webpack不会在内部使用该文件。静态json导入是最有可能的部分是您的主捆绑js


与尝试动态替换生成的某些部分不同,您可以定义一个。这样,您可以灵活地向浏览器环境提供您想要的任何全局文件,并且webpack将知道在运行时在何处找到这些全局文件。

webpack将在dist中生成您需要的所有文件,但它不会在运行时解析该文件,然后浏览器将加载这些文件,其js引擎将在其中执行逻辑。相反,最好询问如何在js文件中动态加载json配置并使用这些值。谢谢。我正在探索外部解决方案。关于json是我的主捆绑包的一部分:是否应排除:[/environment\.json$/]阻止它绑定该文件?因为webpack 2 webpack在内部使用json加载程序自动处理json模块。不确定如何禁用或修改该规则。
{
    "production": false,
    "baseUrl": "http://myapp.com",
    "appId": "MyAppId"
}