Javascript 使用rekuire、requirish或rfr解决nodejs require相关问题时未找到模块

Javascript 使用rekuire、requirish或rfr解决nodejs require相关问题时未找到模块,javascript,npm,browserify,Javascript,Npm,Browserify,我希望通过使用推荐的解决方案之一来避免复杂的相对路径问题。我遇到过三个类似的库: 我已经尝试了这三种方法,但都失败了,出现了“模块未找到”或类似错误,这让我相信我在做一些根本错误的事情。我对npm/node相对缺乏经验。我只使用浏览器中的节点使用browserify将我的应用程序捆绑到单个JS文件中 下面是我非常简单的hello world示例: 结构: Bob.js app.js 捆绑到单个JS中: Chrome的控制台成功输出“我是Bob” 现在,如果我尝试使用这些库,让我们说r

我希望通过使用推荐的解决方案之一来避免复杂的相对路径问题。我遇到过三个类似的库:

我已经尝试了这三种方法,但都失败了,出现了“模块未找到”或类似错误,这让我相信我在做一些根本错误的事情。我对npm/node相对缺乏经验。我只使用浏览器中的节点使用browserify将我的应用程序捆绑到单个JS文件中

下面是我非常简单的hello world示例:

结构:

Bob.js

app.js

捆绑到单个JS中:

Chrome的控制台成功输出“我是Bob”


现在,如果我尝试使用这些库,让我们说requirish:

要求:

npm install requirish
'use strict';

var rfr = require('rfr');
var Bob = rfr('lib/Bob');

console.log(Bob());
app.js更改

捆绑更改

我得到以下错误:

Error: Cannot find module '/lib/Bob' from '/Users/ngb/projects/MyApp/src/main/resources/public/js/hello'
at /Users/ngb/.nvm/v0.10.30/lib/node_modules/browserify/node_modules/resolve/lib/async.js:42:25
Uncaught Error: Cannot find module 'lib/Bob'

RFR:

npm install requirish
'use strict';

var rfr = require('rfr');
var Bob = rfr('lib/Bob');

console.log(Bob());
建筑

Chrome的控制台输出以下错误:

Error: Cannot find module '/lib/Bob' from '/Users/ngb/projects/MyApp/src/main/resources/public/js/hello'
at /Users/ngb/.nvm/v0.10.30/lib/node_modules/browserify/node_modules/resolve/lib/async.js:42:25
Uncaught Error: Cannot find module 'lib/Bob'

Browserify可以通过解析字符串“require”找到模块。 如果要同时使用客户端和服务器端,请使用for server-side和for browserify的转换

在我看来,“rfr”是最好的,因为该模块不会覆盖原始需求

-------注意!补充资料, 今天,browserify rfr版本将我的本地文件路径保留为bundle.js。这可能会导致另一个问题,所以我选择了。由于requiresh通过将新路径推送到module.paths来更改原始require的行为,因此您总是会注意到这一点并提醒您的同事

谢谢

'use strict';

var rfr = require('rfr');
var Bob = rfr('lib/Bob');

console.log(Bob());
browserify app.js -o bundle.js -d
Uncaught Error: Cannot find module 'lib/Bob'