browserify模块加载到函数中

我有一个app.js这是我的web应用程序的主要文件。 它初始化用户界面并加载不同的模块。 目前这是一个包含所有代码的大文件。 我想重构这个function,并将其分解为独立的模块,然后将它们与browserify捆绑在一起。 App.js也依赖于jQuery和一些模块。

我已经在package.json定义了browser部分

 "browser": { "jquery": "./node_modules/jquery/dist/jquery.js", "jquery-ui": "./static/js/vendor/jquery-ui-1.12.1/jquery-ui.min.js", "App": "./static/js/app.js", "myModule": "./static/js/myModule.js" } 

另外我用browserify-shim来加载一些无法加载的jquery插件。

对于browserify-shim我已经定义了一个configuration部分:

 "browserify": { "transform": [ "browserify-shim" ] }, "browserify-shim": { "jquery": "$", "jquery-ui": { "depends": [ "jquery:$" ] }, "bootstrap": { "depends": [ "jquery:$" ] }, "dropdown": { "depends": [ "jquery:$" ] }, "App": { "exports": "App", "depends": [ "jquery:$" ] }, } 

我的entry.js文件

 var $ = require("jquery"); window.$ = window.jQuery = jQuery; var App = require('./app.js'); require('./some jquery plugins'); 

在我的app.js

 var App = function(){ some code... var myModule = require('./myModule.js'); myModule(); some code... return { init: function() { someFunctions(); someFunctions(); } } }(); $(function(){ App.init(); }); 

在我的myModule.js

 module.exports = function() { some code with jquery... }; 

它捆绑正确,但如果我加载页面,我会得到

app.js:14Uncaught Error: Cannot find module './myModule.js'

如果我在浏览器中查看源代码,它会告诉我:

var myModule = __browserify_shim_require__('./myModule.js');

所以似乎browserify无法在此范围内正确加载模块。

我究竟做错了什么? 我忘记了什么吗? 我想我不需要填充我自己的模块,因为我可以使用commonjs格式的browserify。 在这种情况下,我必须使用另一种模式吗?

感谢您的帮助!

编辑:

我还没有解决scheme。 我重构了整个事情,现在我不再需要浏览器垫片了。 没有它,你可以添加大多数插件。