broccoli-config-replace不适用于给定的配置

时间:2016-01-04 23:31:21

标签: javascript broccolijs

我试图使用broccoli-config-replace失败。我想要做的是替换index.html中的占位符,并通过执行broccoli serve

在浏览器中查看

我的Brocfile.js的有趣部分就是这个:

var index_html = new ConfigReplace(app, './', {
    // A list of files to parse:
    files: [
        'index.html',
    ],
    configPath: 'replacements.json',
    outputPath: 'production/',
    patterns: [{
        match: /\{\{SRC_REQUIRE\}\}/g,
        replacement: function(config) { return config.SRC_REQUIRE; }
    }]
});

module.exports = index_html;

但是,当我运行broccoli serve时,我得到的是此警告,并且通过将浏览器指向localhost:4200没有任何显示:

$ broccoli serve

Serving on http://localhost:4200

Warning: failed to stat tmp/config_replace-input_base_path-5qF5n457.tmp/1/tmp/config_replace-input_base_path-5qF5n457.tmp/1/tmp/config_replace-input_base_path-5qF5n457.tmp/1/tmp/config_replace-input_base_path-5qF5n457.tmp/1/tmp/config_replace-input_base_path-5qF5n457.tmp/1/tmp/config_replace-input_base_path-5qF5n457.tmp/1/tmp/config_replace-input_base_path-5qF5n457.tmp/1/tmp/config_replace-input_base_path-5qF5n457.tmp/1/tmp/config_replace-input_base_path-5qF5n457.tmp/1/tmp/config_replace-input_base_path-5qF5n457.tmp/1/tmp/config_replace-input_base_path-5qF5n457.tmp/1/tmp/config_replace-input_base_path-5qF5n457.tmp/1/tmp/config_replace-input_base_path-5qF5n457.tmp/1/tmp/config_replace-input_base_path-5qF5n457.tmp/1/tmp/config_replace-input_base_path-5qF5n457.tmp/1/tmp/config_replace-input_base_path-5qF5n457.tmp/1/node_modules/broccoli-babel-transpiler/node_modules/babel-core/node_modules/regenerator/node_modules/defs/node_modules/yargs/node_modules/cliui/node_modules/center-align/node_modules/align-text/node_modules/kind-of/README.md
Segmentation fault: 11
好的segfault吧?我想我写的不是那么好,但文档非常缺乏。任何人都可以建议我正确的配置来完成这个简单的任务吗?谢谢

1 个答案:

答案 0 :(得分:0)

我已经弄清楚如何得到我想要的东西,但我认为该插件仍然需要一些开发。这是正确的配置:

var index_html = new ConfigReplace(appHtml, 'conf', {
    // A list of files to parse:
    files: [
        '/production/index.html'
    ],
    configPath: 'replacements.json',
    patterns: [{
        match: /\{\{SRC_REQUIRE\}\}/g,
        replacement: function(config) { return config.SRC_REQUIRE; }
    }]
});

我注意到的一些事实:

  • 配置节点必须是目录。 Root不被允许,因此我必须将replacements.json放在子文件夹中(/conf
  • 似乎没有考虑outputPath选项。我省略了它并使用了pickFile之前为了创建一个具有我想要的正确结构的树。然后我将树传递给ConfigReplace(我在上面粘贴的配置中看到的appHtml
  • 缺乏文件是快乐地采用西兰花的好伙伴。我很自信。