Angular执行ng build lib构建库时提示找不到tsickle模块如何解决
构建Angular库报
Cannot find module 'tsickle/src/tsickle'解决方法 问题场景
执行ng build lib构建Angular库时抛出以下错误:
Error: Cannot find module 'tsickle/src/tsickle'
直接执行npm i tsickle安装tsickle依赖后问题未修复,当前项目核心依赖版本:
@angular/core:^6.0.0typescript:~2.7.2
经定位,报错触发点为node_modules/ng-packagr/lib/ngc/create-emit-callback.js模块对tsickle包的路径引用。
根因
Angular 6.x配套的ng-packagr版本,固定依赖0.29.x版本区间的tsickle。直接执行npm i tsickle默认安装的是0.30.0及以上的高版本,这类版本调整了内部目录结构,移除了src/tsickle路径下的入口文件,ng-packagr按旧版本路径查找模块时就会触发找不到模块的错误。
修复操作
- 卸载当前已安装的版本不匹配的tsickle:
npm uninstall tsickle
- 安装适配Angular 6工具链的tsickle版本:
npm install tsickle@0.29.0 --save-dev
- 重新执行构建命令验证:
ng build lib
如果执行完上述步骤仍有报错,先删除
node_modules目录和package-lock.json文件,重新执行npm install安装全量依赖后再跑构建即可。
注意:tsickle 0.30.0及以上版本仅适配Angular 7+工具链,和Angular 6.x存在不兼容的破坏性变更,不要在当前项目中升级到该版本区间。
内容的提问来源于stack exchange,提问作者Beginner
相关产品推荐
相关产品推荐

