Я знаю, что это немного устарело, но было бы хорошо получить ответ.
Итак, я задал себе очень похожий вопрос пару дней назад и в итоге сделал то, что вы хотите сделать.
Использование browserifyOptions
из grunt-browserify, например:
// Using grunt-browserify
grunt.loadNpmTasks("grunt-browserify");
grunt.initConfig({
browserify : {
options : {
browserifyOptions : {
// keep in mind that paths are relative to Gruntfile.js
paths: ["./first/path", "./second/path", "./and/so/on"]
}
},
dist : {
files: { "./path/to/dist.js" : "./path/to/src.js" }
}
},
});
И теперь вы сможете:
var myModule = require("myModule");
opts.paths — это массив каталогов, в которых осуществляется браузерный поиск при поиске модулей, на которые не ссылаются с использованием относительного пути. Может быть абсолютным или относительным по отношению к основанию. Эквивалент установки переменной среды NODE_PATH при вызове команды browserify. - Browserify
Теоретически он должен следовать путям по порядку, единственная проблема, с которой я столкнулся, заключается в том, что он просматривает собственные модули узлов (util, fs и т. д.), прежде чем даже искать эти пути.
Цитата говорит о том, что если вы сделаете:
var myModule = require("./myModule");
Browserify будет искать модуль по относительному пути. Когда вы удаляете относительный путь:
var myModule = require("myModule");
он может искать по установленным путям в опциях.
Редактировать
Я проверил это, и он работает так, как ожидалось. У меня есть модуль с именем myModule.js, который находится в "./current/directory", а также модуль с именем myModule.js, который находится в "./modules/directory". Кроме того, в текущем каталоге у меня есть «src.js», для которого требуется модуль: require("myModule");
. Он просматривает пути по порядку, и первым найденным является тот, который вводится в bundle.js
в этом случае.
grunt.initConfig({
browserify : {
dist : {
options : {
browserifyOptions : {
// keep in mind that paths are relative to Gruntfile.js
paths: ["./current/directory", "./modules/directory"]
}
},
files: { "./current/directory/bundle.js" : "./current/directory/src.js" }
}
},
});
person
pgarciacamou
schedule
01.09.2015