我们一直是Windows商店,主要依靠Visual Studio作为我们的IDE和构建工具。我们已经开始探索使用Angular和node,以及angular-cli。
我们有一个依赖于“angular-cli”的项目:“1.0.0-beta.10”。我试图在新机器上构建它。
我安装了nodejs,然后使用npm:
进行了全局安装angular-clinpm 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所以它不依赖于全局安装?
是否有其他包装可能会遇到类似的问题?有没有一种方法可以适用于任何一种方法?
答案 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 init
(Diff [d]
您已修改过的任何文件!)来升级到最新测试版。更新样板。
答案 1 :(得分:0)
复制&将typescript组件html和css / scss文件粘贴到新构建中,甚至不值得搞乱这些东西的核心构建。
请记住,您可能会看到导入变灰并且需要在app.module.ts中添加相同的导入,因为它现在是我们每个项目的核心文件。