我有一个项目没有使用 ng new
创建 (而是按照 快速上手 指南创建)。当我在该项目中运行一个 Angular CLI 命令 (如 ng generate
) 时,会出现以下错误信息:
您必须在 angular-cli 项目内才能使用生成命令。
有没有办法将我的现有项目转换为 angular-cli 项目?(我想尝试使用它,因为它显然可以自动解决 barrel imports 和 SystemJS 的问题。)
我有一个项目没有使用 ng new
创建 (而是按照 快速上手 指南创建)。当我在该项目中运行一个 Angular CLI 命令 (如 ng generate
) 时,会出现以下错误信息:
您必须在 angular-cli 项目内才能使用生成命令。
有没有办法将我的现有项目转换为 angular-cli 项目?(我想尝试使用它,因为它显然可以自动解决 barrel imports 和 SystemJS 的问题。)
您应该能够运行ng init
并按提示操作。如果需要指南,请查看此问题:https://github.com/angular/angular-cli/issues/755
编辑(2017年3月13日):
ng-init
已从最新版本的angular cli中删除。
https://github.com/angular/angular-cli/pull/4628
因此,现在您需要模拟它尝试实现的内容。 例如:
创建一个新的angular项目 ng new myTemplate
将相关文件从新的myTemplate项目复制到现有项目中:
.angular-cli.json package.json tslint.json src/polyfills.ts src/styles.css src/tsconfig.json
根据您现有应用程序的状态,您可能希望复制更多或更少的内容。我想这就是为什么该功能从CLI中删除的原因。它没有真正的方法知道您想要做什么。
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"project": {
"version": "1.0.0",
"name": "new-cli"
},
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": [
"assets"
],
"index": "index.html",
"main": "main.ts",
"polyfills": "polyfills.ts",
"prefix": "app",
"scripts": [],
"environmentSource": "environments/environment.ts"
}
]
}
尝试以下解决方案,可能会有所帮助。
npm install -g angular-cli
ng new project_folder_name
cd project_folder_name
ng serve
(注意:现在在localhost:4200上,演示项目将运行)src
文件夹,并替换为新创建项目的src
。从现有项目中复制package.json中的所有内容。再次运行npm install。如果出现问题,可能需要调整webpack.config。
ng-init
吗?不确定。 - Vishal Sakaria