Javascript Grunt Browserify-设置包括,回退路径
是否有任何方法为Browserify创建Grunt任务以使用回退路径? 例如Javascript Grunt Browserify-设置包括,回退路径,javascript,node.js,gruntjs,browserify,commonjs,Javascript,Node.js,Gruntjs,Browserify,Commonjs,是否有任何方法为Browserify创建Grunt任务以使用回退路径? 例如 require('./module.js) 检查当前目录中是否有module.js,如果没有,检查其他目录 project1 |- dir1 |- mod1.js - has: require('./mod2.js') |- bundle.js - has: require('./mod1.js') and require('./mod2.js') proj
require('./module.js)
检查当前目录中是否有module.js
,如果没有,检查其他目录
project1
|- dir1
|- mod1.js - has: require('./mod2.js')
|- bundle.js - has: require('./mod1.js') and require('./mod2.js')
project2
|- dir2
|- mod1.js
|- mod2.js
我已经尝试了,但它只能检查一个特定目录。
我不想改变模块内部的路径,一切都应该通过Grunt来完成
我想覆盖一些应用程序(dir2),所以我只想获取(复制到dir1)我需要更改的模块,并将所有其他模块保留在app目录中
GrunFile位于
project1
中。模块是通用的。我用的是我知道这有点过时了,但如果有答案就好了
所以,几天前我问了自己一个非常类似的问题,结果基本上做了你想做的事情
使用grunt browserify的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是一个目录数组,当
正在查找未使用相对路径引用的模块。可以
是绝对的或相对于basedir的。等效于设置节点路径
调用browserify命令时的环境变量。-
从理论上讲,它应该按顺序遵循路径,我遇到的唯一问题是,它在搜索这些路径之前会先查看本机节点模块(util、fs等)
引用的意思是,如果你这样做:
var myModule = require("./myModule");
Browserify将按照相对路径查找模块。删除相对路径时:
var myModule = require("myModule");
它可以在选项中搜索已建立的路径
编辑
我对此进行了测试,结果与预期的一样。我在“/current/directory”中有一个名为myModule.js的模块,在“/modules/directory”中还有一个名为myModule.js的模块。另外,在当前目录中,我有需要模块的“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" }
}
},
});