我们一直是Windows商店,主要依靠Visual Studio作为我们的IDE和构建工具。我们已经开始探索使用Angular和node以及angular-cli。如何在nodejs中管理依赖关系的版本控制?
我们有一个项目依赖于“angular-cli”:“1.0.0-beta.10”。我试图让这个建立在一台新机器上。
我安装的NodeJS,然后做了一个全球的角度,CLI的使用NPM安装:
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 [email protected]
之后,事情工作得很好。
不幸的是,这不是一个解决方案。
我们最终会有多个使用节点包的项目,我们需要它们能够同时运行,而无需卸载并重新安装全局包。
而且我们需要能够在我们的构建机器上自动运行构建,而不必将RDP加入构建机器中,以便弄清楚安装哪个节点包。
也就是说,如果我有三个使用[email protected]的项目,我希望所有三个项目都可以在任何开发者机器上工作,并且构建机器将能够检出三个项目中的任何一个,并成功构建它们。
如果我更新一个使用beta-12,另一个使用beta-14,我希望能够将它们提交到版本控制,并且让生成机器能够检出三个中的任何一个,仍然能够构建它们,而不管它们使用哪个版本。
我认为在package.json中跟踪本地依赖项以及在node_modules中存储本地副本的想法是为了避免依赖于全局安装的包。
人们通常如何处理这个问题?
有没有一种方法可以配置angular-cli,因此它不依赖于全局安装?
是否还有其他可能遇到类似问题的软件包?有没有一种方法可以用于其中任何一种方法?
欢迎来到'node.js'中的版本控制/依赖项地狱 –
我不认为这是一个node/npm问题。这似乎是您的团队依赖于某种全球CLI工具的问题。这与您下载最新版本的Visual Studio并且无法从VB6编译解决方案类似。不要使用CLI,或在构建机器上使用相同版本的CLI。 – BlakeH
@BlakeH对钱的权利。 CLI是Angular开发的一个很好的工具,但是和Angular 2项目一样,依赖于某个版本的各种软件包,工具依赖于很多特定的软件包版本。作为Angular的官方工具,此CLI还推动开发人员在所有项目中保留最新版本的自身和Angular框架。 – gelliott181