如何为JavaScript参数使用外部值?

时间:2017-07-13 00:30:20

标签: javascript war property-files

假设我有一堆构建func的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'
   }]);

如何使用属性文件来管理所有这些引用的前面部分? 也就是说,我希望将所有具有上述功能的60多个JavaScript文件更改为:

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

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

注意,我只想在构建项目时执行此操作;我不需要读取属性并在Web服务器上公开。 (即,当我部署构建的WAR时,所有引用都将在构建期间进行扩展)

我的目标是在发布MyProj-0.0.2

时轻松更新引用

TIA,

1 个答案:

答案 0 :(得分:0)

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

我-constants.js

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

我-app.js

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

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

以上不符合您对问题的这种限制:

  

注意,我只想在构建项目时执行此操作;我不需要读取属性并在Web服务器上公开。 (即,当我部署构建的WAR时,所有引用都将在构建期间进行扩展)

但是,我认为值得问一下这是否真的有必要。常量文件没有成本。在构建期间替换源代码所带来的复杂程度是非常重要的,它引入了新的安全问题。

如果确实希望将此作为构建步骤,那么我最喜欢的工作是rollup-plugin-replace。它包含了一些你可能想要的功能,比如delimiters,没有任何瑕疵。