在Browserify中设置文件的自定义路径

时间:2014-07-27 23:58:53

标签: javascript requirejs browserify

我正在努力将我当前的RequireJS工作流程更改为Browserify + Watchify,仅用于我的前端Javascript(我的后端是Ruby)。我遇到的唯一问题是我没有一个简单的地方来配置我所谓的“命名路径”。我们假设我的前端结构如此:

app/
  models/
    ExampleModel.js
  views/
    ExampleView.js
  main.js
util/
  backbone-all.js
vendor/
  jquery-2.1.0.js
  backbone-1.1.2.js
  backbone-marionette-2.0.1.js
  underscore-1.6.0.js

在上面的示例中,请注意两件事:

  1. 我所有出售的JS文件的文件名都是
  2. 请注意backbone-all.js文件夹
  3. 中的util文件

    使用RequirejS,我可以执行以下操作:

    require.config({
        paths: {
            "jquery": "vendor/jquery-2.1.0",
            "backbone": "vendor/backbone-1.1.2",
            "underscore": "vendor/underscore-1.6.0",
            "backbone-all": "util/backbone-all"
        }
    });
    

    能够简单地按名称要求我的代码,而不是完全合格(甚至相对)的路径。我还没有找到一种方法让我的工作方式与我想要的前端相同。我得到的最接近的是创建一个依赖关系图文件,该文件在我的应用程序启动之前加载(并且全局可用),并将其用作键:

    window.d = window.dependency = {
        "jquery": "/vendor/jquery-2.1.0",
        "backbone": "/vendor/backbone-1.1.2",
        "underscore": "/vendor/underscore-1.6.0",
        "backbone-all": "/util/backbone-all"
    };
    
    var $ = require(d.jquery);
    

    是否有人遇到此问题,或遇到过合适的解决方案?我遇到this post这是类似的,但6个月前没有接受答案。事情可能发生了变化。

1 个答案:

答案 0 :(得分:3)

您可以使用browser中的package.json字段配置类似于requireJS&n paths地图的地图。请参阅the browserify docs

"browser": {
  "jquery": "./vendor/jquery-1.42.js",
  "./lib/ops.js": "./browser/opts.js"
}