自定义npm仓库安装依赖后缺失Model.ts文件问题咨询
自定义npm仓库安装依赖后缺失Model.ts文件问题咨询
看起来你已经把自定义npm仓库的配置做得相当细致了,从registry设置到元数据文件、包文件的准备都一步步走了,但安装后核心的Model.ts文件找不到确实挺闹心的,我来帮你梳理下最可能的问题点和解决办法:
最可能的核心问题:package.json的files字段格式错误
你在tar包的package.json里写的"files":"*.ts"是有问题的!files字段要求是数组类型,如果写成字符串,npm会把它当成一个具体的文件名——也就是去寻找名为*.ts的文件,而不是匹配所有.ts后缀的文件,这直接导致打包的时候根本没把你的Model.ts包含进发布包(哪怕你手动打包的tar包物理上有Model.ts,npm在处理包的时候也会根据files字段过滤,最终安装到node_modules里的就只剩package.json了)。
具体解决步骤
- 修正package.json的files字段
把原来的单字符串改成数组形式:
{"name":"Model","version":"1.0.0","files": ["*.ts"]}
- 重新生成正确的tar包
确保在包含package.json和Model.ts的目录下执行打包命令,把两个文件都正确打包进去:
tar czf model.tgz package.json Model.ts
你可以用tar tf model.tgz命令先检查下tar包内容,确认里面确实有package.json和Model.ts两个文件。
替换仓库里的旧tar包
把新生成的model.tgz替换掉nginx目录里的旧文件。清理缓存后重新安装
避免npm使用旧的缓存包,先清理缓存再重新安装:
npm cache clean --force npm uninstall @example/model npm install @example/model
额外排查点
如果按上面的步骤做了还是有问题,你可以去项目的node_modules/@example/model目录下看看实际存在的文件:
- 如果里面只有package.json,那还是tar包或者files字段的问题;
- 如果Model.ts存在但你的项目里无法导入,那可能是导入路径或者项目编译配置的问题,但从你的描述看应该是前者。
备注:内容来源于stack exchange,提问作者Grim
相关产品推荐
相关产品推荐

