如何在本地安装npm包

时间:2017-10-26 23:16:13

标签: angularjs node.js npm npm-install

我已下载以下demong2-archwizard

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

我尝试的第一件事是npm link,请按照以下步骤进行操作

  1. 内部ng2-archwizard我更改了代码并运行了npm link
  2. 在我使用npm link \path\to\ng2-archwizardnpm link ng2-archwizard
  3. 安装demong2-archwizard项目内
  4. 当我运行ng serve时出现以下错误
  5.   

    chunk {0} main.bundle.js,main.bundle.js.map(main)984 kB {4}   [首字母] [渲染]

         

    chunk {1} polyfills.bundle.js,   polyfills.bundle.js.map(polyfills)191 kB {5} [initial] [rendered]

         

    chunk {2} styles.bundle.js,styles.bundle.js.map(styles)175 kB   {5} [初始] [渲染]

         

    chunk {3} scripts.bundle.js,   scripts.bundle.js.map(scripts)168 kB {5} [initial] [rendered]

         

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

         

    chunk {5} inline.bundle.js,inline.bundle.js.map   (内联)0字节[输入] [渲染]

         

    ERROR in Error遇到静态解析符号值。   不支持函数调用。考虑更换功能或   lambda引用导出的函数(位置194:50 in   原始.ts文件),解析符号NgModule   /usr/xxx/ng2-archwizard-demo/node_modules/ng2-archwizard/node_modules/@angular/core/core.d.ts,   解决符号ArchwizardModule in   /usr/xxx/ng2-archwizard-demo/node_modules/ng2-archwizard/dist/archwizard.module.d.ts,   解决符号ArchwizardModule in   /usr/xxx/ng2-archwizard-demo/node_modules/ng2-archwizard/dist/archwizard.module.d.ts

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

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

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

    更新2

    由于我们的产品和团队结构,已决定使用私有存储库作为跨不同团队的更具可持续性的可扩展解决方案。 Sinopia是not maintained,但发现有两个维持和工作 Verdaccio - 维持近视和cnpm的分叉。

3 个答案:

答案 0 :(得分:1)

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

它被所有大男孩,巴贝尔等使用

它基本上允许您使用lerna bootstrap命令轻松链接未发布的包,并使用lerna publish

将它们作为单独的npm模块发布

还为您自动版本控制和git标记作为奖励。

文档需要一段时间才能解决问题 - 花了我一个小时左右的时间来玩它来获得想法 - 但是当你开始时它真的很棒。强烈推荐。

答案 1 :(得分:1)

你快到了。 您需要做的是:

  1. 使用ng2-archwizard后跟npm i
  2. 在本地构建npm run build
  3. 在自定义项目存储库(npm i --save path/to/ng2-archwizard
  4. 中运行ng2-archwizard-demo
  5. 删除node_modules文件夹中的ng2-archwizard文件夹。此文件夹负责您在终端中看到的ERROR消息
  6. 完成以下三个步骤后,您应该可以通过ng2-archwizard-demo运行ng serve

答案 2 :(得分:0)

来自NPM文档:

  

如果您想依赖自己模块中的软件包   比如Node.js'要求,那么你想在本地安装,   这是npm install的默认行为。另一方面,如果你   想用它作为命令行工具,比如grunt CLI,   那么你想全局安装它

所以它很简单:

npm install package-name

由于它的DEFAULT行为(您可以将标记-g用于全局)。

你可能也想使用其中一个:

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