当前位置: 首页 > 知识库问答 >
问题:

angular-cliwebpack.config.js文件-新建angular6不支持ng弹出

滑骞尧
2023-03-14

更新:2018年12月(见“阿尼凯特”答案)

使用 Angular CLI 6 时,您需要使用生成器,因为 ng 弹出已弃用,并且很快就会在 8.0 中删除

更新:2018 年 6 月:角度 6 不支持 ng 弹出**

更新:2017年2月:使用ng弹射

更新:2016 年 11 月:角度 cli 现在只使用 web 包。您只需要使用 npm 安装 -g 角度-cli 进行正常安装。“我们在beta.10和beta.14之间更改了构建系统,从SystemJS更改为Webpack.”,但实际上我只使用角-cli来表示冷杉结构和文件夹,然后,我不再手动使用webpack配置。

我已经用这个安装了角形cli:

npm install -g angular-cli@webpack

当我使用angular1和web pack时,我曾经修改“webpack.config.js”文件来执行所有的任务和插件,但我没有看到在这个用angular-cli创建的项目上谁在做它的工作。是魔法?

当我这样做时,我看到Webpack正在工作:

ng serve 

"Version: webpack 2.1.0-beta.18"

但我不理解角度cli-config的工作方式。。。

共有3个答案

邴姚石
2023-03-14

使用Angular CLI 6,您需要使用构建器,因为ng弹出已被弃用,很快将在8.0中删除。这就是我尝试执行ng弹出时所说的

您可以使用角度生成器包(https://github.com/meltedspark/angular-builders)以提供自定义webpack配置。

我试图在我的博客上的一篇博文中总结所有内容——如何在Angular CLI 6中使用自定义webpack配置来自定义构建配置

但本质上你添加了以下依赖项 -

  "devDependencies": {
    "@angular-builders/custom-webpack": "^7.0.0",
    "@angular-builders/dev-server": "^7.0.0",
    "@angular-devkit/build-angular": "~0.11.0",

在angular.json中进行以下更改-

  "architect": {
    "build": {
      "builder": "@angular-builders/custom-webpack:browser",
      "options": {
        "customWebpackConfig": {"path": "./custom-webpack.config.js"},

请注意生成器和新选项自定义的更改。同时更改

    "serve": {
      "builder": "@angular-builders/dev-server:generic",

再次注意serve target的builder中的更改。发布这些更改后,您可以创建一个名为custom-webpack.config的文件。在同一根目录中添加js,并在其中添加webpack配置。

然而,与ng不同,这里提供的弹出配置将与默认配置合并,所以只需添加您想要编辑/添加的内容。

景胜涝
2023-03-14

根据这个问题,设计决定不允许用户修改Webpack配置以减少学习曲线。

考虑到Webpack上有用的配置数量,这是一个很大的缺点。

我不建议在生产应用中使用角度-cli,因为它非常固执己见。

萧亦
2023-03-14

有一个很好的方法可以弹出 webpack.config.js从角度-cli.只需运行:

$ ng eject

这将在项目的根文件夹中生成 webpack.config.js,您可以按照所需的方式自由配置它。这样做的缺点是,您的 package.json 中的构建/启动脚本将被替换为新命令,而不是

$ ng serve

你必须做这样的事情

$ npm run build & npm run start

这种方法应该在angular-cli的所有最新版本中都有效(我个人尝试了几个,最老的是1 . 0 . 0-beta 21,最新的是1 . 0 . 0-beta 32.3)

 类似资料:
  • 本文向大家介绍Angular6新特性之Angular Material,包括了Angular6新特性之Angular Material的使用技巧和注意事项,需要的朋友参考一下 Angular Material是包含Navigation/Dashboard/Table三种图形类型,这篇文章中将会了解一些其使用的方式。 准备:安装Material 进入到上篇文章创建的demo2,使用ng add进行安

  • 问题 我在Java使用RestHighLevelClient构建CRUD。 我无法导入这些包裹 错误 无法解析导入org.elasticsearch.action Java电码 Eclipse表示错误 该行的多个标记-IndexRequest无法解析为类型-IndexRequest无法解析为类型 pom.xml pom.xml的引用 https://search.maven.org/artifac

  • 我是StackOverflow的新手,请尽可能清楚。 我有一个接受多文件输入的控制器, FE控制器它工作得很好,但如果我调用我的应用程序的RestController,它就不起作用。RestController 这是我在@Request estBody Request@Request estBody上的请求。 我尝试了不同的消费,如消费=“多部分/ *”,但它们不起作用。 您能给我一些建议,说明我

  • 问题内容: 我已经从https://nodejs.org/en/download安装了node ,然后使用NPM通过NPM安装了角度CLI 完成后,我然后尝试创建一个新的角度项目 我得到以下错误 我尝试使用sudo(和不使用sudo)安装cli,并重新安装了node:我总是遇到相同的错误。 我找不到任何人遇到这个问题。 我正在使用MacOS。 问题答案: 我按照步骤 更新节点,npm最新版本 删除

  • 我知道和会影响元素上的类集,并且控制元素是否呈现为DOM的一部分。 是否有关于选择ng(如果)而不是ng(显示)或ng(隐藏)的指南?

  • 问题内容: 我了解这一点,并会影响在元素上设置的类,并控制是否将元素呈现为DOM的一部分。 有没有对选择的准则在/ 或反之亦然? 问题答案: 取决于您的用例,但总结不同之处: 将从DOM中删除元素。这意味着您所有的处理程序或所有附加到这些元素的内容都将丢失。例如,如果将单击处理程序绑定到子元素之一,则将其评估为false时,将从DOM中删除该元素,并且即使稍后将其评估为true并显示该元素,您的单