将现有的Angular 2项目转换为使用Angular CLI

28

我有一个项目没有使用 ng new 创建 (而是按照 快速上手 指南创建)。当我在该项目中运行一个 Angular CLI 命令 (如 ng generate) 时,会出现以下错误信息:

您必须在 angular-cli 项目内才能使用生成命令。

有没有办法将我的现有项目转换为 angular-cli 项目?(我想尝试使用它,因为它显然可以自动解决 barrel imports 和 SystemJS 的问题。)

4个回答

19

您应该能够运行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项目 ng new myTemplate

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

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

根据您现有应用程序的状态,您可能希望复制更多或更少的内容。我想这就是为什么该功能从CLI中删除的原因。它没有真正的方法知道您想要做什么。


ng-init 吗?不确定。 - Vishal Sakaria
将相关文件从您的新myTemplate项目复制到现有项目中,您是指“将相关文件从现有项目复制到新的myTemplate项目中”吗? - Diego
2
@Diego 不,我的意思是从myTemplate项目中复制相关文件。这里的重点是尝试将您现有的项目转换为由angular cli驱动的项目。 - Lucas Tétreault
如果您需要一个旧项目的angular-cli.json文件怎么办?如果我使用生成新的angular项目的方法,它现在会创建一个angular.json文件。 - Kyle Vassella

2
"ng init" 已被删除。对我而言,解决方法是在根目录下手动创建一个 ".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"
      }
    ]
  }

你需要根据你的设置改变数值。

-1

ng init已从最新版本的Angular CLI中删除,但您可以使用yarn软件包管理器来解决所有依赖关系。 要使用yarn,您必须先安装它。

要在Ubuntu中安装yarn,请在终端中输入以下命令:

sudo apt-get update && sudo apt-get install yarn

对于 Windows 系统,您可以从这里下载 yarn 安装程序。

安装完 yarn 后,您可以在项目目录中运行命令yarn install,它将下载您的项目的所有依赖项。

有关 yarn 的其他信息,请查看官方文档


-3

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

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

从现有项目中复制package.json中的所有内容。再次运行npm install。如果出现问题,可能需要调整webpack.config。


我认为这不是一个真正的答案,因为盲目地将那个新 CLI 项目中的所有内容复制到您现有的 SRC 中,似乎就像是一种 "喷洒祈祷" 的解决方案。 - Eric Bishard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接