获取browserify需要路径的行为更像requirejs

Aba*_*aba 18 javascript commonjs node.js requirejs browserify

我发现移动文件并不断重写文件包含相对于新文件夹的路径时会很痛苦.

我想在我的browserify代码中避免这种情况:

var View = require('../../../../base/view');
Run Code Online (Sandbox Code Playgroud)

并且做一些更符合requirejs的事情,它知道我的基本路径是js:

var View = require('base/view');
Run Code Online (Sandbox Code Playgroud)

eig*_*ive 13

您应该使用该paths选项.它没有在browserify中记录,而是在node-browser-resolve中使用(在引擎盖下使用):

paths - 如果在正常的node_modules递归遍历中找不到任何内容,则使用require.paths数组


Ale*_*exZ 9

这里一个很好的选择是使用这里aliasify提供的插件.然后只需添加类似这样的内容,aliasify配置中的所有路径都相对于该文件的位置:package.json

  "browserify": {
    "transform": [
      "aliasify"
    ]
  },
  "aliasify": {
    "aliases": {
      "app": "./src/app",
      "components": "./src/components",
      "someAlias": "./src/app/some/path/to/a/place",
      "foobar": "./go/to/a/module/named/foobar",
    }
  }
Run Code Online (Sandbox Code Playgroud)

然后,在您的文件中,只需:

var foobar = require("foobar");
var sampleComponent = require("components/someSample");

//My JS code
Run Code Online (Sandbox Code Playgroud)