webpack.config.js 파일 인 angular-cli-새로운 angular6는 ng eject를 지원하지 않습니다


132

업데이트 : 2018 년 12 월 ( 'Aniket'답변 참조)

Angular CLI 6에서는 ng eject가 더 이상 사용되지 않으며 8.0에서 곧 제거 될 예정이므로 빌더를 사용해야합니다.

업데이트 : 2018 년 6 월 : Angular 6은 ng eject를 지원하지 않습니다 **

업데이트 : 2017 년 2 월 : ng eject 사용

업데이트 : 2016 년 11 월 : angular-cli는 이제 웹팩 만 사용합니다. npm install -g angular-cli를 사용하여 정상적으로 설치하면됩니다. "우리는 SystemJS에서 Webpack으로 beta.10과 beta.14 사이에서 빌드 시스템을 변경했습니다."그러나 실제로 angular-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"

하지만 angular-cli config가 작동하는 방식을 이해하지 못합니다 ...


angular2 cli가 내장되어 있습니다. 마술은 간단하지 않습니다.
Jorawar Singh

3
고마워 @MrJSingh, 아직 설정 파일이 있습니까? 또는 단순히 angular-cli.json과 함께 작동합니까? 더 많은 설정 플러그인이 필요하지 않습니까?
stackdave

AT : node_modules \ @ngtools
bharatpatel

1
Angular 6.0.8은 현재 지원하지 않습니다ng eject
Robert Love

4
OP가 게시 후 거의 1 년 만에 정답을 업데이트하는 방식이 마음에 듭니다.
Luminous

답변:


34

Angular CLI 6에서는 ng eject가 더 이상 사용되지 않으며 8.0에서 곧 제거 될 예정이므로 빌더를 사용해야합니다. 그게 내가 꺼내 려고 할 때 말하는 것입니다.

여기에 이미지 설명을 입력하십시오

angular-builders 패키지 ( https://github.com/meltedspark/angular-builders )를 사용하여 사용자 정의 웹팩 구성을 제공 할 수 있습니다.

내 블로그의 단일 블로그 게시물에서 모두 요약하려고 했습니다. Angular CLI 6에서 사용자 정의 웹 팩 구성으로 빌드 구성을 사용자 정의하는 방법

그러나 본질적으로 다음과 같은 종속성을 추가합니다.

  "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"},

빌더 및 새 옵션 customWebpackConfig의 변경 사항을 확인하십시오. 또한 변경

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

제공 대상에 대한 빌더의 변경 사항을 다시 확인하십시오. 이러한 변경 사항을 게시하면 동일한 루트 디렉토리에 custom-webpack.config.js 라는 파일을 작성하고 거기에 웹팩 구성을 추가 할 수 있습니다.

그러나 여기에 제공된 꺼내기 구성 과 달리 기본 구성과 병합되므로 편집 / 추가하려는 항목을 추가하십시오.


4
좋은. webpack 설정을 조정하는 방법은 각도 문서에서 언급해야합니다. 그것은 나와 같은 새로운 이민자를 돕는다.
Wajahath

이 앵귤러 빌더 설정은 작동하지 않으며 ng serve출력없이 5 초 후에 종료됩니다. 내 프로젝트는 각도 cli 7과 각도 코어 5를 사용합니다.
tedw

package.json의 scripts속성 에서 변경해야 합니까?
Krishna Prashatt

Angular 8 용 앵귤러 빌더 버전에서는 " @angular-builders/dev-server:generic더 이상 사용되지 않습니다. @angular-builders/custom-webpack:dev-server대신 사용하십시오 ." 이를 반영하여이 답변을 업데이트 할 수 있습니까?
Brian McCutchon 19

1
github.com/just-jeb/angular-builders/tree/master/packages/…- 이것에 대한 매우 간단한 지침 ...- Angular 9 Universal Ivy
Jonathan

153

angular-cli 에서 webpack.config.js 를 추출하는 좋은 방법이 있습니다 . 그냥 실행 :

$ 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 ).


1
유일한 좌절은 dev 환경 설정 만 꺼내는 것입니다. 생산 설정을 대신 사용하기 위해 ng eject에 추가 할 수있는 인수가 있지만 현재는 작동하지 않습니다. github.com/angular/angular-cli/issues/5433
jtsnr

@bebebe github.com/angular/angular-cli/issues/4907 확실하게 요청했습니다.
Kunepro

@bebebe 여기를 참조하십시오 stackoverflow.com/questions/42984558/…
Anton Nikiforov

@AntonNikiforov 꺼내기 후 웹팩을 구성하는 방법? 웹팩 구성 파일이 너무 복잡해 보입니다. 내가 꺼내는 이유는 프로젝트에서 postcs를 사용하고 싶지만 cli는 현재 그것을 지원하지 않기 때문입니다.
Ng2-Fun

ng build -w를 실행하는 방법? npm run build -w가 작동하지 않습니다. ng build --prod 및 ng build -d "something"과 동일
Victor Bredihin

49

문제 에 따르면 , 사용자가 학습 곡선을 줄이기 위해 웹팩 구성을 수정할 수 없도록하는 것은 디자인 결정이었습니다.

Webpack의 유용한 구성 수를 고려하면 이는 큰 단점입니다.

angular-cli의견이 많으므로 프로덕션 응용 프로그램에 사용하지 않는 것이 좋습니다 .


8
아키텍처의 모든 흐름을 이해할 때까지 블랙 박스에 들어 가지 않는 것이 좋습니다. 일부 프로젝트가 지원되지 않거나 프로젝트 개발 중에 사용자 정의 할 수 없으면 비용이 많이들 수 있습니다.
이그나티우스 앤드류

11

CLI의 웹팩 구성을 꺼낼 수 있습니다. Anton Nikiforov의 답변을 확인하십시오 .


시대에 뒤쳐진:

에서 설정 템플릿을 해킹 할 수 있습니다 angular-cli/addon/ng2/models. 현재 웹팩 설정을 수정하는 공식적인 방법은 없습니다.

github에는 다음과 같이 닫힌 "원시 수정"문제가 있습니다. https://github.com/angular/angular-cli/issues/1656


1
마지막 으로이 골격을 사용합니다 .angular-cli는 webpack을 실제로 사용할 준비가되지 않았으며 많은 문제가 있습니다. 나는 이것을 사용하는 것이 좋습니다
stackdave

5
슬프다. 문제는 "구현하지 않는다"는 말로 끝났다. :-(
monnef 2016 년

1
이 또한 npmjs.com/~ngtools 당신은 CLI의 독립을 실행하는 웹팩을 얻을 수있는 곳. 참조 youtu.be/uBRK6cTr4Vk?t=7m57s
Mikeumus


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.