繁体   English   中英

如何在本地安装npm软件包

[英]How to install an npm package locally

我已经下载了以下演示ng2-archwizard

我想进行更改以对ng2-archwizard的源进行本地更改,并为此演示项目在本地安装软件包。

我尝试的第一件事是通过执行以下步骤进行npm link

  1. ng2-archwizard内部,我进行了代码更改并运行了npm link
  2. 里面的演示项目中,我安装NG2-archwizard使用npm link \\path\\to\\ng2-archwizard或只是npm link ng2-archwizard
  3. 当我运行ng serve ,出现以下错误

块{0} main.bundle.js,main.bundle.js.map(主)984 kB {4} [initial] [rendered]

块{1} polyfills.bundle.js,polyfills.bundle.js.map(polyfills)191 kB {5} [初始] [呈现]

块{2} styles.bundle.js,styles.bundle.js.map(样式)175 kB {5} [initial] [rendered]

块{3} scripts.bundle.js,scripts.bundle.js.map(脚本)168 kB {5} [初始] [呈现]

块{4} vendor.bundle.js,vendor.bundle.js.map(供应商)2.83 MB [初始] [呈现]

块{5} inline.bundle.js,inline.bundle.js.map(内联)0字节[输入] [呈现]

ERROR中的ERROR遇到静态解析符号值的错误。 不支持函数调用。 考虑使用对导出函数的引用(原始.ts文件中的位置194:50)替换函数或lambda,在/ usr / xxx / ng2-archwizard-demo / node_modules / ng2-archwizard / node_modules / @中解析符号NgModule angular / core / core.d.ts,在/usr/xxx/ng2-archwizard-demo/node_modules/ng2-archwizard/dist/archwizard.module.d.ts中解析符号ArchwizardModule,在/ usr / xxx /中解析符号ArchwizardModule NG2-archwizard-DEMO / node_modules / NG2-archwizard /距离/ archwizard.module.d.ts

然后,我尝试使用npm pack创建一个tar并将其安装在演示项目中,它可以作为短期解决方案。

更新1 1.内NG2-archwizard我做了更改代码和运行npm pack 2的内部演示我安装项目NG2-archwizard使用npm install \\path\\to\\ng2-archwizard.tarnpm install \\path\\to\\ng2-archwizard.tar --save (将依赖项保存到演示项目的package.json中)3.运行ng serve 4.当我必须再次对代码进行任何更改时,我必须再次重复上述三个步骤清除缓存,卸载tar等其他步骤。

为了实现可持续的构建过程,如何使用npm链接在本地安装软件包并在演示项目中反映我的更改?

更新2

由于我们的产品和团队结构,已决定使用私有存储库作为跨不同团队的更具可持续性的可扩展解决方案。 Sinopia 未得到维护,但找到了两个已维护且正常工作的Verdaccio -Sinopia和cnpm的维护分支。

我强烈建议您使用npm lerna软件包解决此问题。

所有大男孩,通天塔等都使用它

基本上,您可以使用lerna bootstrap命令轻松链接未发布的软件包,并使用lerna publish将它们发布为单独的npm模块。

还可以为您提供自动版本控制和git标签作为奖励。

这些文档需要花一些时间才能引起您的注意-我花了一个小时左右的时间来理解它-但是当您开始时它确实很棒。 强烈推荐。

你快到了 您需要执行以下操作:

  1. 使用npm i在本地构建ng2-archwizard ,然后npm run build
  2. 运行npm i --save path/to/ng2-archwizard在您的自定义项目存储库( ng2-archwizard-demo )中npm i --save path/to/ng2-archwizard
  3. 删除node_modules您的文件夹里面ng2-archwizard文件夹。 此文件夹负责您在终端中看到的错误消息

完成这三个步骤后,您应该能够通过ng serve运行ng2-archwizard-demo

从NPM文档:

如果要使用Node.js'require之类的东西依赖您自己模块中的软件包,那么您想在本地安装,这是npm install的默认行为。 另一方面,如果要将其用作命令行工具(如grunt CLI),则需要在全局安装

如此简单:

npm install package-name

由于其默认行为(可以将标志-g用于全局)。

您可能还想使用以下两种之一:

  • --save-dev用于保存软件包以供开发。 示例:单元测试,缩小
  • --save用于保存应用程序运行所需的软件包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM