将现有 angular 2 项目转换为使用 angular CLI
Converting an existing angular 2 project to use angular CLI
我有一个项目不是使用 ng new
创建的(相反,我遵循了 quickstart 指南)。当我在该项目中 运行 angular CLI 命令时(例如 ng generate
),我收到此错误消息:
You have to be inside an angular-cli project in order to use the generate command.
有什么方法可以将我现有的项目变成 angular-cli 项目? (我想尝试使用它,因为它显然会自动围绕 an issue with barrel imports and 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项目
新的 myTemplate
将相关文件从新的 myTemplate 项目复制到现有项目:
.angular-cli.json
package.json
tslint.json
src/polyfills.ts
src/styles.css
src/tsconfig.json
根据现有应用程序的状态,您可能希望复制更多或更少。我想这就是为什么从 CLI 中删除该功能的原因。没有任何办法让它确切地知道你想要它做什么。
尝试以下解决方案可能会有帮助。
- 运行 根文件夹上的此命令
npm install -g angular-cli
- 为您的项目创建新文件夹
ng new project_folder_name
- 进入那个文件夹
cd project_folder_name
- 运行这个命令的项目
ng serve
(注意:现在localhost:4200,演示项目将运行)
- 复制现有项目的
src
文件夹,并仅从 项目的根文件夹.[=27 中替换为新创建项目的 src
=]
从现有项目中复制 package.json 中的所有内容。 运行 npm install again.If 它坏了,它可能需要修补 webpack.config
ng init
has been removed。对我有用的是使用以下键在根文件夹中手动创建一个 .angular-cli.json
文件:
{
"$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"
}
]
}
当然,您必须根据您的设置更改值。
ng init 已从最新版本的 angular CLI 中删除,但您可以使用 yarn 包管理器 来解决所有依赖关系。
为了使用yarn,你必须先安装它。
要在 Ubuntu 中安装纱线,请在您的终端中输入以下命令:
sudo apt-get update && sudo apt-get install yarn
对于Windows,您可以从下载纱线安装程序
here.
安装 yarn 后,您可以 运行 在您的项目目录中 yarn install 命令,这将下载您项目的所有依赖项。
有关纱线的更多信息check official docs
我有一个项目不是使用 ng new
创建的(相反,我遵循了 quickstart 指南)。当我在该项目中 运行 angular CLI 命令时(例如 ng generate
),我收到此错误消息:
You have to be inside an angular-cli project in order to use the generate command.
有什么方法可以将我现有的项目变成 angular-cli 项目? (我想尝试使用它,因为它显然会自动围绕 an issue with barrel imports and 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项目 新的 myTemplate
将相关文件从新的 myTemplate 项目复制到现有项目:
.angular-cli.json package.json tslint.json src/polyfills.ts src/styles.css src/tsconfig.json
根据现有应用程序的状态,您可能希望复制更多或更少。我想这就是为什么从 CLI 中删除该功能的原因。没有任何办法让它确切地知道你想要它做什么。
尝试以下解决方案可能会有帮助。
- 运行 根文件夹上的此命令
npm install -g angular-cli
- 为您的项目创建新文件夹
ng new project_folder_name
- 进入那个文件夹
cd project_folder_name
- 运行这个命令的项目
ng serve
(注意:现在localhost:4200,演示项目将运行) - 复制现有项目的
src
文件夹,并仅从 项目的根文件夹.[=27 中替换为新创建项目的src
=]
从现有项目中复制 package.json 中的所有内容。 运行 npm install again.If 它坏了,它可能需要修补 webpack.config
ng init
has been removed。对我有用的是使用以下键在根文件夹中手动创建一个 .angular-cli.json
文件:
{
"$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"
}
]
}
当然,您必须根据您的设置更改值。
ng init 已从最新版本的 angular CLI 中删除,但您可以使用 yarn 包管理器 来解决所有依赖关系。 为了使用yarn,你必须先安装它。
要在 Ubuntu 中安装纱线,请在您的终端中输入以下命令:
sudo apt-get update && sudo apt-get install yarn
对于Windows,您可以从下载纱线安装程序 here.
安装 yarn 后,您可以 运行 在您的项目目录中 yarn install 命令,这将下载您项目的所有依赖项。
有关纱线的更多信息check official docs