我已下载以下demo和ng2-archwizard
我想进行更改以对ng2-archwizard的源进行本地更改,并在本地为此demo项目安装软件包。
我尝试的第一件事是npm link
,请按照以下步骤进行操作
npm link
npm link \path\to\ng2-archwizard
或npm link ng2-archwizard
ng serve
时出现以下错误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.tar
或npm install \path\to\ng2-archwizard.tar --save
安装了ng2-archwizard(这样可以将依赖性保存到演示项目的package.json中)
3.运行ng serve
4.当我必须再次对代码进行任何更改时,我必须再次重复上述三个步骤,并执行清除缓存,卸载tar等其他步骤。
对于可持续构建过程,如何在本地安装软件包并使用npm链接在演示项目中反映我的更改?
更新2
由于我们的产品和团队结构,已决定使用私有存储库作为跨不同团队的更具可持续性的可扩展解决方案。 Sinopia是not maintained,但发现有两个维持和工作 Verdaccio - 维持近视和cnpm的分叉。
答案 0 :(得分:1)
我强烈建议您使用npm lerna包解决此问题。
它被所有大男孩,巴贝尔等使用
它基本上允许您使用lerna bootstrap
命令轻松链接未发布的包,并使用lerna publish
还为您自动版本控制和git标记作为奖励。
文档需要一段时间才能解决问题 - 花了我一个小时左右的时间来玩它来获得想法 - 但是当你开始时它真的很棒。强烈推荐。
答案 1 :(得分:1)
你快到了。 您需要做的是:
ng2-archwizard
后跟npm i
npm run build
npm i --save path/to/ng2-archwizard
)ng2-archwizard-demo
node_modules
文件夹中的ng2-archwizard
文件夹。此文件夹负责您在终端中看到的ERROR消息完成以下三个步骤后,您应该可以通过ng2-archwizard-demo
运行ng serve
。
答案 2 :(得分:0)
来自NPM文档:
如果您想依赖自己模块中的软件包 比如Node.js'要求,那么你想在本地安装, 这是npm install的默认行为。另一方面,如果你 想用它作为命令行工具,比如grunt CLI, 那么你想全局安装它
所以它很简单:
npm install package-name
由于它的DEFAULT行为(您可以将标记-g
用于全局)。
你可能也想使用其中一个:
--save-dev
用于保存包以用于开发目的。示例:单元测试,缩小.. --save
用于保存运行应用程序所需的程序包。