Browserify-shim gulp

Browserify-shim with gulp

我正在使用 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"); 

我尝试使用 shim 来定义依赖关系。
我的 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 的丑化),它运行良好。
但是,在定义了 shim 后,我仍然在控制台中收到一条消息,其中提到

Cannot find module 'e'

你能看出哪里出了问题或我误解了什么吗?

Shim 适用于不支持 commonJS 的模块。您可以简单地明确定义这些依赖项:

export.js

var e2 = require('./export2.js');
module.exports = function(){ 
    console.log("test export"); 
};

export2.js

module.exports = function(){
    console.log("export 2"); 
};

app.js

var e = require('public/src/js/home/export.js');