将现有 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

所以现在您需要模仿它试图完成的事情。 即:

  1. 新建angular项目 新的 myTemplate

  2. 将相关文件从新的 myTemplate 项目复制到现有项目:

    .angular-cli.json package.json tslint.json src/polyfills.ts src/styles.css src/tsconfig.json

根据现有应用程序的状态,您可能希望复制更多或更少。我想这就是为什么从 CLI 中删除该功能的原因。没有任何办法让它确切地知道你想要它做什么。

尝试以下解决方案可能会有帮助。

  1. 运行 根文件夹上的此命令 npm install -g angular-cli
  2. 为您的项目创建新文件夹ng new project_folder_name
  3. 进入那个文件夹cd project_folder_name
  4. 运行这个命令的项目ng serve(注意:现在localhost:4200,演示项目将运行)
  5. 复制现有项目的 src 文件夹,并仅从 项目的根文件夹.[=27 中替换为新创建项目的 src =]

从现有项目中复制 package.json 中的所有内容。 运行 npm install again.If 它坏了,它可能需要修补 webpack.config

ng inithas 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