我有一个Angular库托管在git存储库中但未发布到npm。该库与ng-packagr一起打包。是否可以将其作为git依赖项导入另一个项目?
简单地将git URL指定为npm依赖项不起作用,因为ng-packagr将Angular库构建到dist
文件夹中,该文件夹通常发布到npm。您可以指定postinstall
脚本,但之后如何配置库的根文件夹实际位于dist
文件夹中?
我不想发布到npm,因为该应用程序不是开源的。我可以使用私有的npm存储库,但我在想是否可以避免所有的麻烦。
答案 0 :(得分:1)
我所做的实际上是将其指定为git依赖项,添加postinstall脚本,导入时导入library/dist
。
答案 1 :(得分:1)
找到了解决方法。您可以像这样在package.json
文件中指定git依赖项,然后使用如下的postinstall
脚本:
"scripts"
...
"postinstall": "npm i node_modules/some-package/dist/your-lib/your-lib-0.0.1.tgz"
},
"dependencies": {
"some-package": "github:github_username/some-package",
...
}
答案 2 :(得分:0)
在package.json
中,您可以将git ssh添加为依赖项。
"dependencies": {
"some-package": "github:github_username/some-package"
}
然后您可以从组件导入包。
答案 3 :(得分:0)
另一个选择是将dist文件夹的内容保留在其自己的存储库中。 仅当在ngPackage中库的package.json中指定不删除目标路径时,才有可能。如果还执行此操作,则可能还必须手动定义目标。
下面是一个示例package.json
{
"name": "my-lib",
"version": "0.0.4",
"peerDependencies": {
"@angular/common": "^7.1.0",
"@angular/core": "^7.1.0"
},
"ngPackage": {
"dest": "../../dist/my-lib",
"deleteDestPath": false
}
}
然后您将git init
放入my-lib并将其推送到它自己的存储库中。该回购将成为对其他项目的依赖。