浏览需要在需要的文件中找不到模块

我试图使用browserify将我的角度js打包成单个脚本。 当我在我的主文件app.js使用require时,它运行良好,但是当app.js中所需的某个模块包含它自己的require ,依赖项不会包含在我的包中。

回顾一下,在app.js (link to repo):

require("splash-header");
// more code here

splashHeader.js:

require("social-button-directive");
// more code here

socialButtons.js没有依赖关系。

splashHeader.js browserify --list app.js没有列出splashHeader.js因为它应该和通过browserify app.js -o bundle.js生成的包不包含socialButton的javascript。 所以,当然,如果我尝试加载站点,我会得到Uncaught Error: Cannot find module 'social-button-directive'在splashHeader的require('social-button-directive')Uncaught Error: Cannot find module 'social-button-directive'

同样重要的是要注意,我使用package.json的“browser”选项将模块名称映射到文件位置,并使用browerify-shim,因为我的模块都不是common-js兼容的。

package.json的相关部分:

"dependencies": {
    "browserify": "~9.0.3",
    "browserify-shim": "~3.8.3"
},
"browserify": {
    "transform": [
        "browserify-shim"
    ]
},
"browserify-shim": {
    "splash-header": {
        "depends": "angular",
        "exports": "angular.module('splash-header').name"
    },
    "social-button-directive": {
        "depends": "angular",
        "exports": "angular.module('social-button-directive').name"
    }
},
"browser":{
    "splash-header": "./ng-modules/splashHeader/splashHeader.js",
    "social-button-directive": "./ng-modules/socialButtons/socialButtons.js"
}

我整个上午都在这里,完全陷入了沉思。 我已经减少了违规项目,以此作为这个问题的一个最小例子。 要测试出来的只是clone和npm install。 如果你仔细查看,这里是工作/不工作版本比较。

我试着用相对路径加载子模块( require('./ng-modules/socialButtons/socialButtons.js )`),没有运气。 也许我错误地把事情擦亮了? 我的这个方法来自这篇文章。

编辑:这是肯定我的browserify垫片配置。 将模块转换为commonjs并从package.json中删除browserfy-shim选项后,所有工作都可以正常工作。 我想我只好把这一切写下来。 = /

链接地址: http://www.djcxy.com/p/32891.html

上一篇: browserify require in required file cannot find module

下一篇: require returns empty object when using browserify