【问题标题】:Brunch - Requiring modules outside of app directory早午餐 - 需要应用程序目录之外的模块
【发布时间】:2014-10-25 03:24:59
【问题描述】:

herehere 的答案,但它们是关于使用 NPM 模块,而我的问题涉及同构内部代码,我想在早午餐/骨干网和节点/快递之间共享路由。但是,如果这是一个骗局,那么请提前道歉!

以下代码是高度简化/伪的,顺便说一句。

目前,这可行:


web/client/app/lib/router.coffee

Routes = require 'lib/routesList'
module.exports = class Router extends Backbone.Router
  routes: Routes.get()

web/client/app/lib/routesList.coffee

module.exports = do () ->
  get: () ->
    return {'': 'dashboard', 'settings': 'settings'}

但是,这不是:


web/client/app/lib/router.coffee

Routes = require '../../shared/routes/routesList'
module.exports = class Router extends Backbone.Router
  routes: Routes.get()

web/shared/routes/routesList.coffee

module.exports = do () ->
  get: () ->
    return {'': 'dashboard', 'settings': 'settings'}

我不想让 node 模块与 Brunch 一起工作——我知道这不受支持——但是当这些常见的 js 模块并不都位于应用目录?

非常感谢!

更新:

我最终在web/client/app/shared -> web/shared 之间创建了一个符号链接,现在它可以工作了,但我不知道是否有更清洁的方法......

【问题讨论】:

    标签: javascript brunch


    【解决方案1】:

    ../../shared 添加到您早午餐配置中的监视路径

    paths:
      watched: ['app', 'vendor', '../../shared']
    

    【讨论】:

    • 嘿,对不起,我的反应慢。我将../shared 添加到我的路径中,它现在拾取文件并将它们附加到我的app.js,但即使使用shared/router、@ 的每种组合,我仍然无法获取require() 来获取模块987654325@、../../shared/routerrouter../router 等等。有什么想法吗?谢谢
    • 看来require.register("../shared/routes/routes", callback)实际上也不起作用-如果我手动编辑app.js以删除../,那么shared/routes/routes../shared/routes/routes等的所有组合都可以工作!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 2013-11-03
    • 2013-06-29
    • 2012-06-19
    • 2013-03-15
    • 2017-09-29
    相关资源
    最近更新 更多