Node.js require()vs RequireJS?

pan*_*sru 6 javascript require node.js requirejs

你好RequireJS我可以像这样设置一个基本路径:base : './app/'所以当我在./app/foo/bar/我的脚本中我使用require('foo');RequireJS然后搜索./app/foo.js而不是在node_module文件夹中,或者./app/foo/bar/foo.js当你有一种结构的时候它会很方便作为一个开发人员,你可以更清洁地看到依赖关系,而不是拥有../../foo.js.我可以./app/foo.js./app/foo/foo.js./app/foo/bar/foo.js这将是更清洁的有:

require('foo');
require('foo/foo');
require('foo/bar/foo');
Run Code Online (Sandbox Code Playgroud)

而不是:

require('../../foo');
require('../foo');
require('./foo');
Run Code Online (Sandbox Code Playgroud)

现在你可以说为什么不改变名称而不是foo无处不在,让我们说我们不能出于任何原因......

我在node的require方法中看到的另一个缺少功能是设置路径映射,如果我有一个./app/super-sized-directory-name/在RequireJS中命名的目录,我可以简单地做'big-dir' : 'super-sized-directory-name',然后我可以简单地使用require('./app/big-dir/foo')Node.js的require方法这是不可能的据我所知......

Ray*_*nos 2

--alias, -a    Register an alias with a colon separator: "to:from"
             Example: --alias 'jquery:jquery-browserify'   
Run Code Online (Sandbox Code Playgroud)

您可以使用 browserify 注册别名,这样就可以覆盖您的重命名。

至于你的根绝对路径,那是不可能的。正如前面提到的,modul8有一个命名空间机制可以解决这个问题。

我建议你在 freenode 上的 #stackvm 中 pong SubStack 并直接问他。