1

我想避免<script>require('app')<script>在我的 index.html 上,我该如何实现呢?

我认为使用正则表达式,但我对它们不是很熟练,关于配置的文档对我来说不是那么清楚......

4

2 回答 2

1

您需要使用module.wrapper部分。

modules:
  wrapper: (path, data) ->
    return "#{data}" if /jquery/i.test(path) or /vendor/i.test(path) or /node_modules/i.test(path)
    moduleName = exports.config.modules.nameCleaner(path.replace(new RegExp('\\\\', 'g'), '/')).replace(/\.\w+$/, '')
    'require.register("' + moduleName + '", function(exports, require, module) {\n' + data + '\n});\n\n'

这模拟了早午餐 1.7.13 上的 commonjs 包装器。它不包装jquery, vendor,node_modules模块并包装所有其他模块。

使用从早午餐源代码复制/粘贴的代码清除 moduleName。我没有找到重用该代码的方法。您可以随时从node_modules\brunch\lib\helpers.js:cleanModuleNamenode_modules\brunch\lib\helpers.js:getModuleWrapper功能中复制/粘贴它

可以使用比较工具创建返回的字符串。我只是比较了使用自定义函数和标准函数生成的代码,并使它们相似。

于 2014-04-09T11:03:30.280 回答
0

您可以简单地使用modules配置禁用它。请参见下面的示例:

module.exports = config:
  modules:
    definition: false
    wrapper: false
files:
  javascripts: joinTo: 'app.js'
  stylesheets: joinTo: 'app.css'

这样,您的 JavaScript 文件将保持原样。

于 2015-08-02T17:54:44.880 回答