如何在nodejs中管理依赖项的版本控制?

时间:2016-12-01 17:16:51

标签: angularjs node.js angular-cli

我们一直是Windows商店,主要依靠Visual Studio作为我们的IDE和构建工具。我们已经开始探索使用Angular和node,以及angular-cli。

我们有一个依赖于“angular-cli”的项目:“1.0.0-beta.10”。我试图在新机器上构建它。

我安装了nodejs,然后使用npm:

进行了全局安装angular-cli
npm install -g angular-cli

然后我尝试进行构建:

ng build

我收到了一个错误:

It seems like you're using a project generated using an old version of the Angular CLI.
The latest CLI now uses webpack and has a lot of improvements including a simpler
workflow, a faster build, and smaller bundles.

To get more info, including a step-by-step guide to upgrade the CLI, follow this link:
https://github.com/angular/angular-cli/wiki/Upgrading-from-Beta.10-to-Beta.14

我所做的工作是卸载angular-cli,然后安装版本beta.10

npm uninstall -g angular-cli
npm install -g angular-cli@1.0.0-beta.10

之后,事情就好了。

不幸的是,这不是解决方案。

最终,我们将使用节点包有多个项目,我们需要它们能够同时运行,而无需卸载并重新安装全局包。

我们需要能够在我们的构建机器上自动运行构建,而不必将RDP引入构建机器以弄乱安装哪些节点软件包。

也就是说,如果我有三个项目使用angular-cli@1.0.0-beta.10,我希望这三个项目都可以在任何开发者机器上运行,并且构建机器可以查看任何在这三个项目中成功构建它们。

如果我更新一个使用beta-12,另一个使用beta-14,我希望能够将它们提交到版本控制,并且使构建机器能够检查三个中的任何一个并且仍然能够构建它们,无论它们使用哪个版本。

我认为在package.json中跟踪本地依赖关系以及在node_modules中存储本地副本的整个想法是为了避免对全局安装的包的依赖。

人们通常如何处理这个问题?

有没有办法配置angular-cli所以它不依赖于全局安装?

是否有其他包装可能会遇到类似的问题?有没有一种方法可以适用于任何一种方法?

2 个答案:

答案 0 :(得分:2)

Angular-CLI可以使用,并且全局ng命令使用本地安装的每个项目版本。可以使用命令./node_modules/.bin/ng

访问此本地版本

我建议您卸载您拥有的全局CLI并花时间修改package.json scripts以引用本地CLI安装而不是全局ng。这是我在Jenkins服务器上处理各种CLI的方法。

在这方面,我强烈建议按照说明从Beta.10迁移到Beta.14(https://github.com/angular/angular-cli/wiki/Upgrading-from-Beta.10-to-Beta.14),如果你能够改变WebPack的话。使用CLI Beta.14或更高版本的任何项目都可以通过卸载CLI,重新安装,然后运行ng initDiff [d]您已修改过的任何文件!)来升级到最新测试版。更新样板。

答案 1 :(得分:0)

复制&将typescript组件html和css / scss文件粘贴到新构建中,甚至不值得搞乱这些东西的核心构建。

请记住,您可能会看到导入变灰并且需要在app.module.ts中添加相同的导入,因为它现在是我们每个项目的核心文件。