angular-cli webpack.config.js dosyasıdır - yeni angular6, çıkarmayı desteklemiyor


132

GÜNCELLEME: Aralık 2018 ('Aniket' cevabına bakın)

Angular CLI 6 ile, çıkartma kullanımdan kaldırıldığından ve yakında 8.0'da kaldırılacağından, inşaatçıları kullanmanız gerekir.

GÜNCELLEME: Haziran 2018: Angular 6, çıkarmayı desteklemiyor **

GÜNCELLEME: Şubat 2017: çıkartmayı kullanma

GÜNCELLEME: Kasım 2016: angular-cli artık yalnızca web paketini kullanıyor. Yalnızca npm install -g angular-cli ile normal olarak yüklemeniz gerekir. "Beta.10 ve beta.14 arasındaki derleme sistemini SystemJS'den Webpack'e değiştirdik.", Ancak aslında sadece ilk yapı ve klasörler için angular-cli kullanıyorum ve artık webpack yapılandırmasını manuel olarak kullanıyorum.

Bununla açısal cli kurdum:

npm install -g angular-cli@webpack

Angular1 ve web pack ile çalışırken, tüm görevleri ve eklentileri yürütmek için "webpack.config.js" dosyasını değiştiriyordum, ancak angular-cli ile oluşturulan bu projede kimin çalıştığını göremiyorum. bu sihirdir?

Bunu yaptığımda Webpack'in çalıştığını görüyorum:

ng serve 

"Version: webpack 2.1.0-beta.18"

ancak angular-cli yapılandırmasının nasıl çalıştığını anlamıyorum ...


Yerleşik açısal2 klibi ekler. Sadece basitleştirilmiş sihir yok.
Jorawar Singh

3
teşekkürler @MrJSingh, ama henüz bir yapılandırma dosyası var mı? veya basitçe açısal-cli.json ile çalışır? daha fazla yapılandırma eklentisine ihtiyacım yok mu?
stackdave

AT: node_modules \ @ngtools
bharatpatel

1
Angular 6.0.8 şu anda desteklemiyorng eject
Robert Love

4
OP'nin gönderdikten neredeyse bir yıl sonra doğru cevabı nasıl güncellemesi hoşuma gidiyor.
Luminous

Yanıtlar:


34

Angular CLI 6 ile, çıkartma kullanımdan kaldırıldığından ve yakında 8.0'da kaldırılacağından, yapıcıları kullanmanız gerekir. Yani ben bir şey yapmaya çalışırken böyle söylüyor ng çıkarma

görüntü açıklamasını buraya girin

Özel web paketi yapılandırmanızı sağlamak için açısal oluşturucular paketini ( https://github.com/meltedspark/angular-builders ) kullanabilirsiniz.

Blogumdaki hepsini tek bir blog gönderisinde özetlemeye çalıştım - Angular CLI 6'da özel web paketi yapılandırması ile yapı yapılandırması nasıl özelleştirilir

ama esasen şu bağımlılıkları eklersiniz -

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

Gelen angular.json marka değişiklikleri takip -

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

Oluşturucu ve yeni customWebpackConfig seçeneğindeki değişikliklere dikkat edin. Ayrıca değiştir

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

Servis hedefi için oluşturucudaki değişikliğe tekrar dikkat edin. Bu değişiklikleri gönderin, custom-webpack.config.js adlı bir dosya oluşturabilirsiniz , aynı kök dizininizde ve web paketi yapılandırmanızı oraya ekleyebilirsiniz.

Ancak, burada sağlanan çıkarma yapılandırmasının aksine , varsayılan yapılandırma ile birleştirilecektir, bu nedenle düzenlemek / eklemek istediğiniz şeyleri eklemeniz yeterlidir.


4
Güzel. Web paketi yapılandırmasına ince ayar yapma yöntemi, açısal belgelerde belirtilmelidir. Benim gibi yeni gelenlere yardımcı oluyor.
Wajahath

Bu açısal oluşturucu kurulumu benim için çalışmıyor, ng servesadece 5 saniye sonra çıktı olmadan çıkıyor. Benim proje açısal cli 7 ve açısal çekirdek 5. kullanır
tedw

Package.json'ın scriptsmülkiyetinde yapmam gereken herhangi bir değişiklik var mı?
Krishna Prashatt

Angular 8 için angular-builders sürümünde " @angular-builders/dev-server:generickullanımdan kaldırıldı. @angular-builders/custom-webpack:dev-serverBunun yerine kullanın ." Bu yanıtı, bunu yansıtacak şekilde güncelleyebilir misiniz?
Brian McCutchon

1
github.com/just-jeb/angular-builders/tree/master/packages/… - bunun için çok basit talimatlar ... - Angular 9 Universal Ivy'de çalışıyor
Jonathan

153

Çıkarma için güzel bir yol var webpack.config.js gelen açısal-cli . Sadece koş:

$ ng eject

Bu, projenizin kök klasöründe webpack.config.js oluşturacaktır ve istediğiniz şekilde yapılandırmakta özgürsünüz. Bunun dezavantajı, package.json'unuzdaki derleme / başlatma komut dosyalarının yeni komutlarla değiştirilecek ve bunun yerine

$ ng serve

gibi bir şey yapmalısın

$ npm run build & npm run start

Bu yöntem, angular -cli'nin tüm son sürümlerinde çalışmalıdır (kişisel olarak birkaçını denedim, en eskisi 1.0.0-beta.21 ve en son 1.0.0-beta.32.3 )


1
Tek hayal kırıklığı, yalnızca geliştirme ortamı yapılandırmasını çıkarmasıdır. Bunun yerine üretim yapılandırmasını kullanmak için ng çıkarmasına ekleyebileceğiniz bir argüman var, ancak bu şu anda çalışmıyor github.com/angular/angular-cli/issues/5433
jtsnr



@AntonNikiforov Çıkardıktan sonra web paketi nasıl yapılandırılır? Web paketi yapılandırma dosyasının çok karmaşık göründüğünü hissediyorum. Çıkarmamın nedeni projemde postcs kullanmak istemem ama cli şu anda desteklemiyor.
Ng2-Fun

build -w nasıl çalıştırılır? npm run build -w çalışmıyor, ng build --prod ve ng build -d "birşeyler" için aynı
Victor Bredihin

49

Bu konuya göre , kullanıcıların öğrenme eğrisini azaltmak için Webpack yapılandırmasını değiştirmesine izin vermemek bir tasarım kararıydı.

Webpack'teki kullanışlı yapılandırma sayısı göz önüne alındığında, bu büyük bir dezavantajdır.

Kullanmanızı tavsiye etmem angular-cliÇok düşünülmüş olduğu için üretim uygulamaları için .


8
Mimarinin her akışını anlayana kadar bir kara kutuya girmeniz tavsiye edilmez. Bazılarının desteklenmemesi veya bir proje geliştirmenin ortasında özelleştirilememesi çok maliyetli olabilir.
Ignatius Andrew

11

CLI'nin web paketi yapılandırması artık çıkarılabilir. Anton Nikiforov'un cevabını kontrol edin .


modası geçmiş:

Yapılandırma şablonunu kırabilirsiniz angular-cli/addon/ng2/models . Şimdilik web paketi yapılandırmasını değiştirmenin resmi bir yolu yok.

Github'da bununla ilgili kapalı bir "düzeltmeyeceğim" sorunu var: https://github.com/angular/angular-cli/issues/1656


1
Sonunda bu iskeleti kullanıyorum, açısal-cli webpack ile gerçek çalışmaya hazır değil, çok sorunum var. Bunu kullanmanızı tavsiye ederim: github.com/webpack/webpack-dev-server
stackdave

5
Üzgünüm, sorun "uygulanmayacak" diye kapandı. :-(
monnef

1
Orada da npmjs.com/~ngtools CLI bağımsız çalışır WebPack alabileceğiniz. Görüşmek üzere youtu.be/uBRK6cTr4Vk?t=7m57s
Mikeumus


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.