撤回Angular CLI执行的ng eject

使用angular cli执行ng eject后,就不允许执行ng server或ng build。

执行ng server 或ng build会报一下错误:

An ejected project cannot use the build command anymore.

错误信息的出处

查看源码,你可以在
https://github.com/angular/angular-cli/blob/master/packages/%40angular/cli/tasks/build.ts#L27
以及
https://github.com/angular/angular-cli/blob/master/packages/%40angular/cli/tasks/serve.ts#L66

定位到错误提示的出处:

if (config.project && config.project.ejected) {
  throw new SilentError('An ejected project cannot use the build command anymore.');
}

ng eject执行后的变动

1、执行ng eject后,你会发现在package.json发生了改变

原来

"scripts": {
  "ng": "ng",
  "start": "ng serve",
  "build": "ng build",
  "test": "ng test",
  "lint": "ng lint",
  "e2e": "ng e2e"
 }

执行ng eject后

"scripts": {
  "ng": "ng",
  "start": "webpack-dev-server --port=4200",
  "build": "webpack",
  "test": "karma start ./karma.conf.js",
  "lint": "ng lint",
  "e2e": "protractor ./protractor.conf.js",
  "pree2e": "webdriver-manager update --standalone false --gecko false --quiet"
}

2、在根目录生成了webpack.config.js文件

3、在.angular-cli.json的project属性新增了ejected,如下

"project": {
  "name": "项目名",
  "ejected": true
}

解决方法

为了可以重新使用ng的命令,只需要在.angular-cli.json中,把ejected删除或者把它的值改为false

"project": {
  "name": "项目名",
  "ejected": false
}

版权声明:著作权归作者所有。

相关推荐

使用Angular CLI的6个最佳实践及专业技巧

我们在新建前端项目时,常常会为项目的代码结构以及技术选型(如gunt,gulp,webpack,systemjs等等)绞尽脑汁。Angular CLI为我们开发Angular应用提供了一个标准的项目模板。项目模板里包含了完整的测试:包括unit测试,e2e测试多环境构建,提供了develop和production这两种基本的构建还提供了一系列代码开发工具,如ng generat

Angular CLI 集成jQuery

Angular CLI有两种方式集成jQuery:以全局方式导入和以模块方式导入。安装在导入jQuery之前需要先安装:npm install jquery --save npm install @types/jquery --save 全局方式在.angular-cli.json的app.scripts引入jquery&quo

Angular CLI:集成Angular Flex Layout

Angular CLI创建项目ng new myproject 安装Angular Flex Layoutnpm install @angular/flex-layout --save 导入Angular Flex Layout NgModule模块src/app/app.module.t

查看angular cli版本

ng help version 查看帮助说明$ ng help version ng version <options...>  Outputs Angular CLI version.  aliases: v, --version, -v  --

Angular CLI在Angular项目里使用scss

Angular CLI支持多种css预处理,包括:cssscsslesssassstyl (stylus)默认值为css。Angular有两种方式指定css预处理。下面以scss为例:新建项目指定css预处理在新建angular项目是使用--style指定css预处理ng new my-project --style=scss 已有项目指定css预