我想避免<script>require('app')<script>
在我的 index.html 上,我该如何实现呢?
我认为使用正则表达式,但我对它们不是很熟练,关于配置的文档对我来说不是那么清楚......
我想避免<script>require('app')<script>
在我的 index.html 上,我该如何实现呢?
我认为使用正则表达式,但我对它们不是很熟练,关于配置的文档对我来说不是那么清楚......
您需要使用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:cleanModuleName
和node_modules\brunch\lib\helpers.js:getModuleWrapper
功能中复制/粘贴它
可以使用比较工具创建返回的字符串。我只是比较了使用自定义函数和标准函数生成的代码,并使它们相似。
您可以简单地使用modules
配置禁用它。请参见下面的示例:
module.exports = config:
modules:
definition: false
wrapper: false
files:
javascripts: joinTo: 'app.js'
stylesheets: joinTo: 'app.css'
这样,您的 JavaScript 文件将保持原样。