在发布期间修改配置文件

时间:2018-04-05 19:19:12

标签: javascript webpack

现状

我们有许多客户使用我们的客户端应用软件。问题是我们需要连接到不同的REST端点。基本URL始终不同。

目前我们正在使用我们在发布期间操作的config.json文件。一个简单的例子

config.json

{
  "endpoint": "http://localhost/api"
}

在我们的应用程序启动期间,我们正在进行HTTP调用以获取此文件。对于进一步的API调用,我们使用config.json文件提供的端点。

期望的结果

我们真正想要的是它成为我们应用程序的一部分,而不是进行HTTP调用。我们正在使用webpack来构建我们的应用程序。

在我们的dataservice层,我们想要做如下的事情:

import config from './config';

// use config.endpoint;

config.js

export default {
   endpoint: "http://localhost/api"
};

我们可以在构建期间覆盖 confg.js 文件。但由于我们有很多客户(+ - 30),我们不想为每个客户构建。我们只想在发布期间使用正确的配置进行一次构建并修改 config.js 文件。

基本上我们希望webpack在构建期间忽略该文件并将文件复制到输出文件夹+将其注入index.html。

我做过一些研究,我不知道如何解决这个问题。也许最初的HTTP调用不是那么糟糕的事情吗?

编辑:端点只是一个示例,我们在客户端应用中定义了更多客户特定配置

1 个答案:

答案 0 :(得分:0)

好的,这比预期的要容易。我只是在配置文件中添加了一个新条目。

entry: {
   config: "./src/config.ts",
   app: "./src/main.ts"
}

在UglifyJsPlugin中,我添加了config文件的排除。

new webpack.optimize.UglifyJsPlugin({
  compress: {
    warnings: false
  },
  exclude: /(config).+/i,
  sourceMap: true
}),

输出是"可读"配置文件。