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

Javascript 为Browserify中的文件设置自定义路径,javascript,requirejs,browserify,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 ba

我正在尝试将我当前的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
在上述示例中,请注意两件事:

  • 我的所有供应商JS文件的文件名中都有其版本
  • 注意
    util
    文件夹中的
    backbone all.js
    文件
  • 使用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);
    

    有没有人遇到过这个问题,或者找到了合适的解决方案?我遇到了类似的问题,但6个月前还没有得到公认的答案。也许事情已经改变了。

    您可以使用
    包.json中的
    浏览器
    字段来配置类似于requireJS的
    路径
    映射的映射。看

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