将Angular库作为git依赖项

时间:2018-01-04 14:12:57

标签: angular npm

我有一个Angular库托管在git存储库中但未发布到npm。该库与ng-packagr一起打包。是否可以将其作为git依赖项导入另一个项目?

简单地将git URL指定为npm依赖项不起作用,因为ng-packagr将Angular库构建到dist文件夹中,该文件夹通常发布到npm。您可以指定postinstall脚本,但之后如何配置库的根文件夹实际位于dist文件夹中?

我不想发布到npm,因为该应用程序不是开源的。我可以使用私有的npm存储库,但我在想是否可以避免所有的麻烦。

4 个答案:

答案 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并将其推送到它自己的存储库中。该回购将成为对其他项目的依赖。