如何在Angular库的ng-package.json中配置@angular-redux/store的umdModuleIds条目?
解决@angular-redux/store在ng-package.json的umdModuleIds中的配置问题
我之前在构建依赖@angular-redux/store的Angular库时,也碰到过一模一样的困惑——不知道该给它配置什么UMD模块ID,试过查看UMD文件、用webpack externals里的window["angular-redux"].store都没生效,后来终于找到了正确的配置方式:
"umdModuleIds": { "redux": "Redux", "@angular-redux/store": "angular-redux.store" }
为什么这个配置有效?
@angular-redux/store的UMD包在全局环境中暴露的是window['angular-redux'].store这个对象,ng-packagr的umdModuleIds字段需要的就是这个全局变量的完整路径字符串。虽然看起来和你之前尝试的window["angular-redux"].store类似,但直接写angular-redux.store就能让ng-packagr正确生成UMD包中的全局引用。
如果这个配置还是不生效,你可以做个简单验证:
- 先构建你的库
- 打开生成的UMD文件(通常在
dist/<your-library-name>/bundles/目录下) - 搜索
angular-redux.store,看看它是否被正确替换成了全局变量引用
另外要注意,确保你在测试环境中已经正确引入了@angular-redux/store的UMD文件(比如在测试页面的<script>标签里加载它),否则全局变量不存在,配置也会看起来无效。
内容的提问来源于stack exchange,提问作者john.solano
相关产品推荐
相关产品推荐

