Coffeescript 早午餐-需要冲突

Coffeescript 早午餐-需要冲突,coffeescript,brunch,Coffeescript,Brunch,我正在使用coffeescript和brunch.io在一个app.js文件中编译我的项目,这太棒了 在主项目中,我有tools=require'utils/tools' 在我的库中,我还有一个utils目录(不同于带有工具文件的主项目目录。因此在库代码中:tools=require'utils/tools' 然后在一个浏览器中,我寻找主项目和我的库 最大的问题是,早午餐只导入第一个utils/tools,而不导入第二个(因为我可以看到所有东西都是全局的,而且utils/tools已经设置好

我正在使用coffeescript和brunch.io在一个
app.js
文件中编译我的项目,这太棒了

  • 在主项目中,我有
    tools=require'utils/tools'
  • 在我的库中,我还有一个utils目录(不同于带有工具文件的主项目目录。因此在库代码中:
    tools=require'utils/tools'
然后在一个浏览器中,我寻找主项目和我的库

最大的问题是,早午餐只导入第一个
utils/tools
,而不导入第二个(因为我可以看到所有东西都是全局的,而且utils/tools已经设置好了)

我怎么解决这个问题呢?我已经有了两个想法,但我想我可以找到更好的办法

  • 1解决方案:重命名文件夹(例如:utils2/)
  • 2解决方案:重命名文件(例如:utils/tools2.coffee)
有更好的主意吗?可以为
require
定义域名或命名空间吗

致意

PS:这是早午餐中的
要求
。我没有点头。s:p

es128答案:

解决方案

将模块配置更改为向组件添加名称空间。您可以编写自定义包装,但最干净的方式可能是

modules:
  nameCleaner: (path) ->
    "myComponentName/#{path.replace(/^app\//, '')}"
或者这个更可重用的版本从package.json中获取名称

{name} = require './package'

modules:
  nameCleaner: (path) ->
    path.replace /^app/, name```

你为什么要降低这个问题的等级?require有很多实现。所以它可能取决于实现。