我正在使用browserify测试gulp,我试图让以下工作:
我有一个名为export.js的文件,它依赖于另一个名为export2.js的文件。
export.js
module.exports = function(){
console.log("test export");
};
export2.js
module.exports = function(){
console.log("export 2");
}
我有另一个名为app.js的文件,我在其中定义了以下代码:
var e = require("e");
我尝试使用垫片来定义依赖关系 我的package.json中的相关代码如下所示:
"browserify-shim": {
"jquery": "$",
"public/src/js/home/export.js": {
"exports": "e",
"depends": [
"public/src/js/home/export2.js"
]
}
},
"browserify": {
"transform": [
"browserify-shim"
]
},
路径应该是正确的。
我的gulp文件定义:
//Uglifies scripts
gulp.task("uglify-scripts", function(){
return browserify({ entries:["public/src/js/home/app.js"]})
.bundle()
.pipe(source("bundle.js")) // gives streaming vinyl file object
.pipe(buffer()) //convert from streaming to buffered vinyl file object
.pipe(uglify()) //gulp-uglify
.pipe(gulp.dest("public/src/js/home/dist"))
.pipe(livereload());
});
我之前测试过任务(没有依赖关系的app.js的uglification),它运行正常 但是,在定义了垫片的情况下,我仍然在控制台中收到一条提到
的消息无法找到模块' e'
你能看出出了什么问题或我误解了什么吗?
答案 0 :(得分:-2)
垫片适用于不支持commonJS的模块。您可以简单地明确定义这些依赖项:
var e2 = require('./export2.js');
module.exports = function(){
console.log("test export");
};
module.exports = function(){
console.log("export 2");
};
var e = require('public/src/js/home/export.js');