浏览需要在需要的文件中找不到模块
我试图使用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