Webpack: đầu ra im lặng


82

Tôi muốn biết nếu có tùy chọn cấu hình để yêu cầu webpack chỉ ghi "thông tin quan trọng" vào thiết bị đầu cuối. Khá nhiều chỉ là lỗi và cảnh báo, không phải tất cả những điều này:

đầu ra của thiết bị đầu cuối với webpack

Chỉ có rất nhiều đầu ra! Rất thích loại bỏ những thứ phổ biến và chỉ có webpack đưa ra các cảnh báo / lỗi. Muốn có một giải pháp cho webpack, webpack-dev-serverkarma-webpack.

Lưu ý : tôi đã cố gắng noInfo: truequiet: truenhưng điều đó dường như không làm các trick.


Chỉnh sửa: Tôi nghĩ điều này có thể không thực hiện được, vì vậy tôi đã tạo ra sự cố trên github: https://github.com/webpack/webpack/issues/1191


Có vẻ như trên dòng lệnh, noInfotùy chọn này thực sự là nghịch đảo của --info, tùy chọn này được mặc định thành truevì vậy nếu bạn chạy, tùy chọn này webpack-dev-server --info falsesẽ đưa bạn đến gần hơn với nơi bạn muốn.
naartjie

1
Đó là xuất hiện để làm điều đó cho webpack-dev-server ... Bây giờ nếu duy nhất tôi có thể nhận được nó cho các bài kiểm tra của tôi :-)
kentcdodds

1
Nếu bất kỳ ai tò mò, đây là những gì tôi thực hiện:NODE_ENV=development webpack-dev-server --content-base app/ --port 8888 --colors --progress --info false
kentcdodds

1
Này hoạt động cũng như:NODE_ENV=development webpack-dev-server --content-base app/ --port 8888 --colors --progress --no-info
kentcdodds

Ah, --no-inforất vui được biết, cảm ơn
naartjie.

Câu trả lời:


56

Trong cấu hình webpack của tôi, việc làm này đã giảm thời gian xây dựng gia tăng của tôi xuống 8 giây và đầu ra bị tắt tiếng. Cái chính làchunks: false

Chơi với nó để phù hợp với nhu cầu của bạn

module.exports = {
 devServer: {
  stats: {
    colors: true,
    hash: false,
    version: false,
    timings: false,
    assets: false,
    chunks: false,
    modules: false,
    reasons: false,
    children: false,
    source: false,
    errors: false,
    errorDetails: false,
    warnings: false,
    publicPath: false
  }
 }
}

4
Hoạt động tuyệt vời! Những điều quan trọng để vô hiệu hóa là hash, version, timings, assets, chunks.
Neal Ehardt

41

👋 Bạn không cần tất cả những thứ đó. Tất cả những gì bạn cần là

Trên thực tế, hai công việc này rất tuyệt.

stats: 'errors-only',

ở cuối đối tượng đã xuất.

Người ta cũng có thể sử dụng stats: 'minimal',nó chỉ đầu ra khi có lỗi hoặc quá trình biên dịch mới xảy ra. Đọc thêm từ tài liệu chính thức của Webpack.


31

Tôi không biết tính năng này được thêm vào khi nào, nhưng tôi chỉ nhận thấy trong tài liệu rằng bạn có thể thêm một thuộc webpackMiddlewaretính và bạn có thể chỉ định trên đó noInfo: true. Làm điều này sẽ loại bỏ tất cả tiếng ồn! Nhưng bạn vẫn thấy đầu ra khi có lỗi. Yay!


10

Bạn có --displaytùy chọn cho phép bạn chọn mức độ thông tin mà bạn muốn hiển thị.

Từ webpack --help:

--display: Select display preset
[string] [choices: "", "verbose", "detailed", "normal", "minimal", "errors-only", "none"]

Nếu bạn muốn định cấu hình thông tin được hiển thị chính xác hơn, bạn cũng có thể định cấu hình gói web của mình với trường thống kê trong của bạn webpack.config.js.


8

Nếu bạn đang sử dụng, webpack-dev-middlewarebạn có thể ném noInfo: truemột đối tượng vào làm tham số thứ hai. Cũng giả sử bạn cũng có một máy chủ node / express đang chạy.

nhập mô tả hình ảnh ở đây

Chúc mừng.


Tôi đăng bài này cho những người khác gặp vấn đề tương tự trên một cấu hình hơi khác vì Google Tìm kiếm đang dẫn họ đến đây.
leocreatini

Bạn cũng có thể thêm noInfo: truevào devServermục cấu hình trong webpack.config.js.
Chad Johnson

Chỉ một cái phù hợp với tôi. Cũng hoạt động trên webpackMiddleware. Cảm ơn bạn, đầu ra tào lao đã khiến tôi phát điên.
Doa


2

Đề xuất cấu hình số liệu thống kê bên dưới, điều này sẽ giữ các nhật ký quan trọng và loại bỏ thông tin vô ích.

stats: {
  cached: false,
  cachedAssets: false,
  chunks: false,
  chunkModules: false,
  chunkOrigins: false,
  modules: false
}

1

Nếu bạn đang sử dụng trực tiếp API Webpack và đang gọi stats.toString(), thì bạn có thể chuyển các tham số để giảm nhiễu:

webpack(config).watch(100, (err, stats) => {
  console.log(stats.toString({chunks: false}))
})

1

Điều bạn quan tâm ở đây là mô-đun (một phần) của Webpack . Về cơ bản, mô-đun này tạo ra đầu ra . Đầu ra theo mặc định chủ yếu chứa danh sách nội dung và danh sách các mô-đun. Bạn có thể ẩn các mô-đun với chỉ thị. Về tài sản, không có tùy chọn tương tự nào tồn tại. Nhưng có những cài đặt trước . Bạn có thể chỉ định cài đặt trước với tùy chọn. Và cài đặt trước đó da tài sản là ... .stats --hide-modules--displaynone

Có một cách khác để gây ảnh hưởng số liệu thống kê: webpack.config.js. Thêm stats: {assets: false, modules: false}để giảm sản lượng đáng kể. Hoặc stats: 'none'để tắt hoàn toàn Webpack. Không phải là tôi khuyên bạn nên nó. Nói chung errors-onlylà một cách để đi. Để làm cho nó ảnh hưởng, webpack-dev-serverhãy đặt nó dưới devServerphím.

Webpack 2.x không có --displaytùy chọn. Và cách duy nhất để ẩn các mô-đun là --hide-moduleschuyển đổi. Điều đó có nghĩa là tôi chỉ định stats: 'errors-only'hoặc stats: {modules: false}trong cấu hình không có tác dụng. Từ này đoạn mã sẽ ghi đè tất cả những gì.

webpack-dev-servercũng có --no-info--quietcác tùy chọn.

Một số hiểu biết sâu hơn về cách nó hoạt động. webpack-clitạo outputOptionsđối tượng . Khi quá trình biên dịch kết thúc, nó sẽ chuyển đổi số liệu thống kê thành chuỗixuất ra . Stats.toStringchuyển đổi thống kê thành json , sau đó chuyển đổi json thành chuỗi . Tại đây bạn có thể thấy các giá trị mặc định .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.