Я хотел бы избежать сложной проблемы с относительным путем, описанной здесь, используя одно из рекомендуемых решений. Я столкнулся с тремя подобными библиотеками:
Я пробовал все три, и все терпят неудачу с «модулем не найден» или подобной ошибкой, которая заставляет меня поверить, что я делаю что-то принципиально неправильное. Я относительно неопытен с npm/node. Я использую узел в браузере только с помощью browserify для объединения моего приложения в один файл JS.
Вот мой чрезвычайно простой пример hello world:
Структура:
lib/Bob.js
app.js
Боб.js
function Bob() {
return "I am bob";
}
module.exports = Bob;
app.js
var Bob = require('./lib/Bob.js');
console.log(Bob());
Объединение в один JS:
browserify app.js -o bundle.js
Консоль Chrome успешно выводит «Я Боб».
Теперь, если я попробую и библиотеки, скажем, requirish:
ТРЕБОВАНИЕ:
npm install requirish
изменения app.js
'use strict';
require('requirish')._(module);
var Bob = require('lib/Bob');
console.log(Bob());
Объединение изменений
browserify -t requirish app.js > bundle.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
Запрос запроса:
'use strict';
var rfr = require('rfr');
var Bob = rfr('lib/Bob');
console.log(Bob());
Здание
browserify app.js -o bundle.js -d
Консоль Chrome выводит следующую ошибку:
Uncaught Error: Cannot find module 'lib/Bob'