1

假设我有一堆构建函数的 JavaScript 文件,例如:

me.add ([
panel1: [{
   url: 'https://localhost:8888/MyProj-0.0.1/resources/html/dir1/page1.html'
   }, {
   url: 'https://localhost:8888/MyProj-0.0.1/resources/html/dir2/page5.html'
   }]);

如何使用属性文件来管理所有这些 refs 的前面部分?即,我想将所有 60 多个具有上述功能的 JavaScript 文件更改为:

me.add ([
panel1: [{
   url: '($MagicGoesHere)/resources/html/dir1/page1.html'
   }, {
   url: '($MagicGoesHere)/resources/html/dir2/page5.html'
   }]);

这样我就可以从我的项目中为所有这些引用定义 MagicGoesHere 根的文件中读取单个属性。

请注意,我只想将其作为构建项目的一部分;我不需要读取属性并暴露在网络服务器上。(即,当我部署构建的 WAR 时,所有的 refs 都将在构建期间扩展)

我的目标是在发布 MyProj-0.0.2 时轻松更新参考

TIA,

4

1 回答 1

0

您可以轻松地使用常量文件。

我的常量.js

const myConstants = {
    baseUrl: 'http://localhost:8888/MyProj-0.0.1/'
};
module.exports = myConstants;

我的应用程序.js

const myConstants = require('./my-constants');

me.add([
    {
        panel1: [
            { url : myConstants.baseUrl + 'resources/html/dir1/page1.html' }
        ]
    }
])

以上不满足您对问题施加的这个约束:

请注意,我只想将其作为构建项目的一部分;我不需要读取属性并暴露在网络服务器上。(即,当我部署构建的 WAR 时,所有的 refs 都将在构建期间扩展)

但是,我认为值得一问这是否真的有必要。常量文件没有成本。在构建过程中替换源代码带来的复杂性是不小的,它引入了新的安全问题。

如果您真的想将此作为构建步骤,我最喜欢的工具是rollup-plugin-replace。它包括一些您可能想要的功能,例如delimiters,没有任何杂乱无章的东西。

于 2017-07-13T03:48:18.637 回答