browserify检测自定义require()

我想在我的应用程序中使用一个自定义的require()函数。 也就是说,我有节点的标准require()和我写的一个自定义的文件,需要从rootRequire()开始的文件,它在内部完成所有工作:

 // rootRequire.js var path = require('path'); var rootPath = __dirname; global.rootRequire = function (modulePath) { var filepath = path.join(rootPath, modulePath); return require(filepath); }; module.exports = rootRequire; 

但即使rootRequire()内部使用节点的require() ,也不会获取通过该方法所需的任何文件

例:

 require('rootRequire.js'); rootRequire('/A.js'); // server side it works, in the browser I get an error saying can't find module A.js 

也许, 这将回答你为什么不能在浏览器上工作的问题。

引用所有者的评论:“Browserify只能分析静态需求,不在browserify的范围内处理dynamic需求”。

从技术上讲,你正试图从你的自定义需求的variablesdynamic加载文件。 显然,node.js可以处理。

在browserify的情况下,当您运行CLI构build捆绑包时,所有需求都将静态加载并打包。

HTH。

我build议在这里做的是这样的:

首先创build一个你需要的可以在rootRequire()使用的rootRequire()

类似于browserify -r CURRENT_PATH/A.js -r CURRENT_PATH/B.js > rootRequirePackages.js

然后,在您的网页中,您可以同时包含rootRequirePackages.js和常规的浏览文件。

也许只是使用RequireJS ? 设置起来很简单,而且相对容易使用。