私有仓库部署Angular 2类库遇问题:npm install仅下载配置文件
解决从GitHub安装Angular 2类库仅下载配置文件的问题
我来帮你搞定这个问题——从GitHub安装自己的Angular 2类库时只拿到package.json和README,这大概率是你的库没正确配置构建产物,或者npm不知道该下载哪些文件导致的。下面是一步步的解决思路和操作:
1. 先确认你的Angular库已经完成构建
Angular 2+的类库(尤其是用Angular CLI生成的)不能直接用源码导入,必须先编译成可被其他项目识别的UMD/ES模块。
- 如果是用
ng generate library创建的库,在库的根目录运行:
构建产物默认会生成在ng build your-library-namedist/your-library-name目录下。 - 要么把
dist目录提交到GitHub仓库(适合稳定版本),要么在库的package.json里添加prepare脚本,让npm在安装前自动构建:"scripts": { "prepare": "ng build your-library-name" }
2. 配置package.json的关键字段,告诉npm该下载哪些文件
这是最核心的一步,npm从GitHub安装时,只会下载package.json里files字段指定的文件,同时需要指定入口文件路径:
- 确保
main、module、types字段指向构建后的正确文件(以Angular CLI生成的库为例):"main": "dist/your-library-name/bundles/your-library-name.umd.js", "module": "dist/your-library-name/fesm2015/your-library-name.mjs", "types": "dist/your-library-name/your-library-name.d.ts" - 添加
files字段,明确指定要包含的文件/目录:
这样npm就知道要下载"files": [ "dist/**/*", "README.md", "package.json" ]dist里的所有构建产物,而不只是根目录的配置文件。
3. 使用正确的GitHub安装命令
确保你用的命令格式正确,比如:
- HTTPS方式:
npm install git+https://github.com/你的用户名/你的库仓库名.git#分支名 - SSH方式(如果你配置了GitHub SSH密钥):
npm install git+ssh://git@github.com/你的用户名/你的库仓库名.git#分支名
如果你的库有发布版本tag,也可以指定tag来安装特定版本:
npm install git+https://github.com/你的用户名/你的库仓库名.git#v1.0.0
4. 开发阶段的替代方案:用npm link本地调试
如果你还在频繁修改库的代码,不想每次都提交到GitHub,可以用npm link实现本地实时调试:
- 在你的类库目录下运行:
npm link - 在需要导入该库的Angular项目目录下运行:
npm link your-library-name
修改库代码后,重新执行ng build,项目里就能直接看到更新,比从GitHub安装高效得多。
5. 排查问题的小技巧
- 安装完成后,去项目的
node_modules/your-library-name目录看看,如果没有dist文件夹或者实际的代码文件,说明要么dist没提交到GitHub,要么files字段配置有误。 - 检查GitHub仓库的文件列表,确认
dist目录确实存在(如果是提前构建提交的情况)。
内容的提问来源于stack exchange,提问作者Silvio Zoidberg Sdord
相关产品推荐
相关产品推荐

