为什么早午餐编译在 joinTo 中使用函数时发现的所有内容
Why brunch compile everything it found when using function in joinTo
我不明白为什么 BrunchJS 在我使用这样的函数 (CoffeeScript) 时编译所有文件(在 bower_components 中):
modules = ['i18n', 'pager', 'core', 'module-comment']
javascripts:
joinTo:
# Main
'/js/master.js': () ->
paths = ['bower_components/bootstrap/**/*', 'app/**/*']
for o in modules
fs.exists '../../../../workbench/dynamix/' + o, (exists) ->
if exists
paths.push '../../../../workbench/dynamix/' + o + '/public/public/**/*'
else
paths.push '../../../../vendor/dynamix/' + o + '/public/public/**/*'
return paths
我想测试是否存在某些路径,如果存在,请将完整路径放入一个变量中 return 它会加入到。我已成功获取 workbench/vendor 中的文件,但它从 bower_components 中获取了一些不需要的文件(未指定?!)
我想优化这个:
javascripts:
joinTo:
# Main
'/js/master.js':
'bower_components/bootstrap/**/*'
'../../../../workbench/dynamix/i18n/public/public/**/*'
'../../../../workbench/dynamix/pager/public/public/**/*'
'../../../../vendor/dynamix/core/public/public/**/*'
'../../../../workbench/dynamix/module-comment/public/public/**/*'
'../../../../workbench/dynamix/module-love-live-music/public/public/**/*'
'../../../../workbench/dynamix/module-rating/public/public/**/*'
'../../../../workbench/dynamix/module-registration/public/public/**/*'
'app/**/*'
抱歉,我没有找到在 joinTo 中使用函数的文档。
谢谢
joinTo
中的函数应将文件路径作为参数,return true
如果应包含路径,则 false
不包含。 anymatch 文档中对此进行了描述。
您的函数似乎总是 return 真值,这意味着 Brunch 正在观察的每条路径都将包括在内。
您可能打算使用 IIFE,因此函数的 return 值(在初始代码评估期间调用)被分配给 joinTo
。在 coffeescript 中,您可以使用 do
关键字轻松完成此操作,因此与其使用 () ->
开始函数定义,不如使用 do ->
来代替。
感谢您的宝贵时间和回答。
我创建了获取文件的函数并测试该路径是否存在并且工作正常。
如果这对某人有帮助,我就让我的魔法在这里发挥作用
javascripts:
joinTo:
# Main
'/js/master.js': [
'bower_components/bootstrap/**/*'
'bower_components/unveil/**/*'
'app/**/*'
(string) ->
response = false
modules = ['i18n', 'pager', 'core', 'module-comment']
for o in modules
exists = fs.existsSync unixify('../../../../workbench/dynamix/' + o)
if exists
if unixify(string).indexOf(unixify('../../../../workbench/dynamix/' + o + '/public/public/')) != -1
response = true
else
if unixify(string).indexOf(unixify('../../../../vendor/dynamix/' + o + '/public/public/')) != -1
response = true
return response
]
我不明白为什么 BrunchJS 在我使用这样的函数 (CoffeeScript) 时编译所有文件(在 bower_components 中):
modules = ['i18n', 'pager', 'core', 'module-comment']
javascripts:
joinTo:
# Main
'/js/master.js': () ->
paths = ['bower_components/bootstrap/**/*', 'app/**/*']
for o in modules
fs.exists '../../../../workbench/dynamix/' + o, (exists) ->
if exists
paths.push '../../../../workbench/dynamix/' + o + '/public/public/**/*'
else
paths.push '../../../../vendor/dynamix/' + o + '/public/public/**/*'
return paths
我想测试是否存在某些路径,如果存在,请将完整路径放入一个变量中 return 它会加入到。我已成功获取 workbench/vendor 中的文件,但它从 bower_components 中获取了一些不需要的文件(未指定?!)
我想优化这个:
javascripts:
joinTo:
# Main
'/js/master.js':
'bower_components/bootstrap/**/*'
'../../../../workbench/dynamix/i18n/public/public/**/*'
'../../../../workbench/dynamix/pager/public/public/**/*'
'../../../../vendor/dynamix/core/public/public/**/*'
'../../../../workbench/dynamix/module-comment/public/public/**/*'
'../../../../workbench/dynamix/module-love-live-music/public/public/**/*'
'../../../../workbench/dynamix/module-rating/public/public/**/*'
'../../../../workbench/dynamix/module-registration/public/public/**/*'
'app/**/*'
抱歉,我没有找到在 joinTo 中使用函数的文档。
谢谢
joinTo
中的函数应将文件路径作为参数,return true
如果应包含路径,则 false
不包含。 anymatch 文档中对此进行了描述。
您的函数似乎总是 return 真值,这意味着 Brunch 正在观察的每条路径都将包括在内。
您可能打算使用 IIFE,因此函数的 return 值(在初始代码评估期间调用)被分配给 joinTo
。在 coffeescript 中,您可以使用 do
关键字轻松完成此操作,因此与其使用 () ->
开始函数定义,不如使用 do ->
来代替。
感谢您的宝贵时间和回答。
我创建了获取文件的函数并测试该路径是否存在并且工作正常。
如果这对某人有帮助,我就让我的魔法在这里发挥作用
javascripts:
joinTo:
# Main
'/js/master.js': [
'bower_components/bootstrap/**/*'
'bower_components/unveil/**/*'
'app/**/*'
(string) ->
response = false
modules = ['i18n', 'pager', 'core', 'module-comment']
for o in modules
exists = fs.existsSync unixify('../../../../workbench/dynamix/' + o)
if exists
if unixify(string).indexOf(unixify('../../../../workbench/dynamix/' + o + '/public/public/')) != -1
response = true
else
if unixify(string).indexOf(unixify('../../../../vendor/dynamix/' + o + '/public/public/')) != -1
response = true
return response
]