Phản ứng 17 mô-đun CSS không hoạt động

Nếu vì lý do này hay lý do khác, bạn cần trích xuất CSS dưới dạng tệp (i. e. không lưu trữ CSS trong mô-đun JS), bạn có thể muốn kiểm tra

Tùy chọn

yarn add -D css-loader03

Loại

type url =
  | boolean
  | {
      filter: (url: string, resourcePath: string) => boolean;
    };

Vỡ nợ.

yarn add -D css-loader
11

Cho phép bật/tắt xử lý các chức năng CSS

yarn add -D css-loader
03 và
yarn add -D css-loader
13. Nếu được đặt thành
yarn add -D css-loader
14, thì
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
6 sẽ không phân tích cú pháp bất kỳ đường dẫn nào được chỉ định trong
yarn add -D css-loader
03 hoặc
yarn add -D css-loader
13. Một hàm cũng có thể được chuyển để kiểm soát hành vi này một cách linh hoạt dựa trên đường dẫn đến nội dung. Bắt đầu với phiên bản, các đường dẫn tuyệt đối được phân tích cú pháp dựa trên thư mục gốc của máy chủ

Ví dụ độ phân giải

url(image.png) => require('./image.png')
url('image.png') => require('./image.png')
url(./image.png) => require('./image.png')
url('./image.png') => require('./image.png')
url('http://dontwritehorriblecode.com/2112.png') => require('http://dontwritehorriblecode.com/2112.png')
image-set(url('image2x.png') 1x, url('image1x.png') 2x) => require('./image1x.png') and require('./image2x.png')

Để nhập nội dung từ một đường dẫn

yarn add -D css-loader
18 (bao gồm
yarn add -D css-loader
19) và đối với
yarn add -D css-loader
20, hãy đặt trước nó một dấu ______21

url(~module/image.png) => require('module/image.png')
url('~module/image.png') => require('module/image.png')
url(~aliasDirectory/image.png) => require('otherDirectory/image.png')

yarn add -D css-loader
22

Bật/tắt giải quyết

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
8

gói web. cấu hình. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};

yarn add -D css-loader
24

Cho phép lọc

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
8. Tất cả
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
8 đã lọc sẽ không được giải quyết (để lại trong mã khi chúng được viết)

gói web. cấu hình. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};

yarn add -D css-loader04

Loại

yarn add -D css-loader
0

Vỡ nợ.

yarn add -D css-loader
11

Cho phép bật/tắt

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
7 xử lý theo quy tắc. Kiểm soát
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
7 giải quyết. Các url tuyệt đối trong
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
7 sẽ được di chuyển trong mã thời gian chạy

Ví dụ độ phân giải

yarn add -D css-loader
1

Để nhập các kiểu từ một đường dẫn

yarn add -D css-loader
18 (bao gồm
yarn add -D css-loader
19) và đối với
yarn add -D css-loader
20, hãy đặt trước nó một ký tự
yarn add -D css-loader
21

yarn add -D css-loader
2

yarn add -D css-loader
22

Bật/tắt giải quyết

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
7

gói web. cấu hình. js

yarn add -D css-loader
3

yarn add -D css-loader
24

yarn add -D css-loader
39

Loại

yarn add -D css-loader
4

Vỡ nợ.

yarn add -D css-loader
40

Cho phép lọc

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
7. Tất cả
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
7 đã lọc sẽ không được giải quyết (để lại trong mã khi chúng được viết)

gói web. cấu hình. js

yarn add -D css-loader
5

yarn add -D css-loader05

Loại

yarn add -D css-loader
6

Vỡ nợ.

yarn add -D css-loader
40

Cho phép bật/tắt Mô-đun CSS hoặc ICSS và cấu hình thiết lập

  • yarn add -D css-loader
    40 - kích hoạt các mô-đun CSS cho tất cả các tệp phù hợp với biểu thức chính quy
    yarn add -D css-loader
    46 và
    yarn add -D css-loader
    47
  • yarn add -D css-loader
    11 - kích hoạt các mô-đun CSS cho tất cả các tệp
  • yarn add -D css-loader
    14 - vô hiệu hóa Mô-đun CSS cho tất cả các tệp
  • yarn add -D css-loader
    50 - vô hiệu hóa Mô-đun CSS cho tất cả các tệp và đặt tùy chọn
    yarn add -D css-loader
    51, bạn có thể đọc thêm thông tin
  • yarn add -D css-loader
    24 - bật các mô-đun CSS cho tất cả các tệp, nếu tùy chọn
    yarn add -D css-loader
    53 không được chỉ định, nếu không, tùy chọn
    yarn add -D css-loader
    53 sẽ xác định xem đó có phải là mô-đun CSS hay không, bạn có thể đọc thêm thông tin

Tùy chọn

yarn add -D css-loader
05 bật/tắt đặc tả Mô-đun CSS và thiết lập hành vi cơ bản

Sử dụng giá trị

yarn add -D css-loader
14 tăng hiệu suất vì chúng tôi tránh phân tích cú pháp các tính năng của Mô-đun CSS, nó sẽ hữu ích cho các nhà phát triển sử dụng vanilla css hoặc sử dụng các công nghệ khác

gói web. cấu hình. js

yarn add -D css-loader
7

yarn add -D css-loader
57

yarn add -D css-loader
58

Sử dụng giá trị

yarn add -D css-loader
59 yêu cầu bạn chỉ định lớp
yarn add -D css-loader
60. Sử dụng giá trị
yarn add -D css-loader
61 yêu cầu bạn chỉ định lớp
yarn add -D css-loader
62. Sử dụng giá trị
yarn add -D css-loader
63 yêu cầu bộ chọn phải chứa ít nhất một lớp hoặc id cục bộ

Bạn có thể tìm thêm thông tin ở đây

Các kiểu có thể được xác định phạm vi cục bộ để tránh các kiểu có phạm vi toàn cầu

Cú pháp

yarn add -D css-loader
64 có thể được sử dụng để khai báo
yarn add -D css-loader
65 trong phạm vi cục bộ. Các số nhận dạng cục bộ được xuất bởi mô-đun

Với chế độ cục bộ

yarn add -D css-loader
62 (không có dấu ngoặc) có thể được bật cho bộ chọn này. Ký hiệu
yarn add -D css-loader
67 có thể được sử dụng để khai báo một bộ chọn toàn cầu rõ ràng. Với chế độ toàn cầu
yarn add -D css-loader
60 (không có dấu ngoặc) có thể được bật cho bộ chọn này

Trình tải thay thế các bộ chọn cục bộ bằng các mã định danh duy nhất. Các mã định danh duy nhất đã chọn được xuất bởi mô-đun

yarn add -D css-loader
8

yarn add -D css-loader
9

Ghi chú

Số nhận dạng được xuất

pnpm add -D css-loader
0

CamelCase được khuyến nghị cho bộ chọn cục bộ. Chúng dễ sử dụng hơn trong mô-đun JS đã nhập

Bạn có thể sử dụng

yarn add -D css-loader
69, nhưng điều này không được khuyến khích. Sử dụng các lớp thay vì id

yarn add -D css-loader
70

Khi khai báo một tên lớp cục bộ, bạn có thể soạn một lớp cục bộ từ một tên lớp cục bộ khác

pnpm add -D css-loader
1

Điều này không dẫn đến bất kỳ thay đổi nào đối với CSS nhưng xuất nhiều tên lớp

pnpm add -D css-loader
2

pnpm add -D css-loader
3

yarn add -D css-loader
71

Để nhập một tên lớp cục bộ từ một mô-đun khác

Ghi chú

Chúng tôi thực sự khuyên bạn nên chỉ định phần mở rộng khi nhập tệp, vì có thể nhập tệp có bất kỳ phần mở rộng nào và không biết trước sẽ sử dụng tệp nào

pnpm add -D css-loader
4

pnpm add -D css-loader
5

Để nhập từ nhiều mô-đun, hãy sử dụng nhiều quy tắc

yarn add -D css-loader
72

pnpm add -D css-loader
6

yarn add -D css-loader
73

Bạn có thể sử dụng

yarn add -D css-loader
74 cho các giá trị cụ thể để sử dụng lại trong toàn bộ tài liệu

Chúng tôi khuyên bạn nên sử dụng tiền tố

yarn add -D css-loader
75 cho các giá trị,
yarn add -D css-loader
76 cho bộ chọn và
yarn add -D css-loader
77 cho quy tắc phương tiện

pnpm add -D css-loader
7

yarn add -D css-loader
22

Bật các tính năng của Mô-đun CSS

gói web. cấu hình. js

yarn add -D css-loader
7

yarn add -D css-loader
50

Kích hoạt các tính năng và thiết lập Mô-đun CSS

yarn add -D css-loader
51

gói web. cấu hình. js

pnpm add -D css-loader
9

yarn add -D css-loader
24

Bật các tính năng và tùy chọn thiết lập của Mô-đun CSS cho chúng

gói web. cấu hình. js

import css from "file.css";
0

yarn add -D css-loader
82

Loại

import css from "file.css";
1

Vỡ nợ.

yarn add -D css-loader
40

Cho phép tự động kích hoạt các mô-đun CSS/ICSS dựa trên tên tệp khi tùy chọn

yarn add -D css-loader
05 là đối tượng

Những giá trị khả thi

  • yarn add -D css-loader
    40 - kích hoạt các mô-đun CSS cho tất cả các tệp
  • yarn add -D css-loader
    11 - kích hoạt các mô-đun CSS cho tất cả các tệp phù hợp với biểu thức chính quy
    yarn add -D css-loader
    46 và
    yarn add -D css-loader
    47
  • yarn add -D css-loader
    14 - vô hiệu hóa Mô-đun CSS
  • yarn add -D css-loader
    90 - kích hoạt các mô-đun CSS cho tất cả các tệp phù hợp với biểu thức chính quy
    yarn add -D css-loader
    91
  • yarn add -D css-loader
    92 - bật Mô-đun CSS cho các tệp dựa trên tên tệp đáp ứng kiểm tra chức năng bộ lọc của bạn
yarn add -D css-loader
22

Những giá trị khả thi

  • yarn add -D css-loader
    11 - bật các mô-đun CSS hoặc định dạng CSS có thể tương tác, đặt tùy chọn thành giá trị
    yarn add -D css-loader
    59 cho tất cả các tệp thỏa mãn điều kiện
    yarn add -D css-loader
    97 hoặc đặt tùy chọn thành giá trị
    yarn add -D css-loader
    99 cho tất cả các tệp thỏa mãn điều kiện
    yarn add -D css-loader
    47
  • yarn add -D css-loader
    14 - vô hiệu hóa các mô-đun CSS hoặc định dạng CSS có thể tương tác dựa trên tên tệp

gói web. cấu hình. js

import css from "file.css";
2

yarn add -D css-loader
90

Kích hoạt các mô-đun CSS cho các tệp dựa trên tên tệp đáp ứng kiểm tra regex của bạn

gói web. cấu hình. js

import css from "file.css";
3

yarn add -D css-loader
92

Kích hoạt các mô-đun CSS cho các tệp dựa trên tên tệp đáp ứng kiểm tra chức năng bộ lọc của bạn

gói web. cấu hình. js

import css from "file.css";
4

yarn add -D css-loader
51

Loại

import css from "file.css";
5

Vỡ nợ.

pnpm add -D css-loader
05

Thiết lập tùy chọn

yarn add -D css-loader
51. Bạn có thể bỏ qua giá trị khi muốn chế độ
yarn add -D css-loader
59

Kiểm soát mức độ biên dịch được áp dụng cho các kiểu đầu vào

Các giá trị

yarn add -D css-loader
59,
yarn add -D css-loader
61 và
yarn add -D css-loader
63 xử lý các giá trị phạm vi
pnpm add -D css-loader
11 và
pnpm add -D css-loader
12 và ________0____74.
yarn add -D css-loader
99 sẽ chỉ biên dịch định dạng
pnpm add -D css-loader
15 cấp thấp để khai báo các phụ thuộc
pnpm add -D css-loader
16 và
pnpm add -D css-loader
17 giữa CSS và các ngôn ngữ khác

ICSS củng cố hỗ trợ Mô-đun CSS và cung cấp cú pháp cấp thấp cho các công cụ khác để triển khai các biến thể mô-đun CSS của riêng chúng

yarn add -D css-loader
50

Các giá trị có thể -

yarn add -D css-loader
59,
yarn add -D css-loader
61,
yarn add -D css-loader
63 và
yarn add -D css-loader
99

gói web. cấu hình. js

import css from "file.css";
6

yarn add -D css-loader
92

Cho phép đặt các giá trị khác nhau cho tùy chọn

yarn add -D css-loader
51 dựa trên tên tệp

Các giá trị có thể trả về -

yarn add -D css-loader
59,
yarn add -D css-loader
61,
yarn add -D css-loader
63 và
yarn add -D css-loader
99

gói web. cấu hình. js

import css from "file.css";
7

pnpm add -D css-loader
29

Loại

import css from "file.css";
8

Vỡ nợ.

pnpm add -D css-loader
30

Cho phép định cấu hình tên nhận dạng cục bộ được tạo

Để biết thêm thông tin về các tùy chọn xem

  • ,
  • ,
  • ,
  • ,
  • .

Chuỗi mẫu được hỗ trợ

  • pnpm add -D css-loader
    31 tên cơ sở của tài nguyên
  • pnpm add -D css-loader
    32 thư mục tài nguyên liên quan đến tùy chọn
    pnpm add -D css-loader
    33 hoặc tùy chọn
    pnpm add -D css-loader
    34
  • pnpm add -D css-loader
    35 đường dẫn của tài nguyên liên quan đến tùy chọn
    pnpm add -D css-loader
    33 hoặc tùy chọn
    pnpm add -D css-loader
    34
  • pnpm add -D css-loader
    38 - tên tệp và đường dẫn
  • pnpm add -D css-loader
    39 - phần mở rộng với đầu
    pnpm add -D css-loader
    40
  • pnpm add -D css-loader
    41 - hàm băm của chuỗi, được tạo dựa trên
    pnpm add -D css-loader
    42,
    pnpm add -D css-loader
    43,
    pnpm add -D css-loader
    44,
    pnpm add -D css-loader
    45,
    pnpm add -D css-loader
    46,
    pnpm add -D css-loader
    47 và
    pnpm add -D css-loader
    48
  • pnpm add -D css-loader
    49 - hàm băm với cài đặt hàm băm
  • pnpm add -D css-loader
    50 - lớp ban đầu

khuyến nghị

  • sử dụng
    pnpm add -D css-loader
    51 để phát triển
  • sử dụng
    pnpm add -D css-loader
    30 để sản xuất

Trình giữ chỗ

pnpm add -D css-loader
50 chứa lớp gốc

Ghi chú. tất cả các ký tự dành riêng (_______74_______54) và ký tự hệ thống tệp điều khiển (không bao gồm các ký tự trong trình giữ chỗ

pnpm add -D css-loader
50) sẽ được chuyển đổi thành
pnpm add -D css-loader
56

gói web. cấu hình. js

import css from "file.css";
9

pnpm add -D css-loader
46

Loại

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: ["style-loader", "css-loader"],
      },
    ],
  },
};
0

Vỡ nợ.

pnpm add -D css-loader
33

Cho phép xác định lại bối cảnh trình tải cơ bản cho tên nhận dạng cục bộ

gói web. cấu hình. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: ["style-loader", "css-loader"],
      },
    ],
  },
};
1

pnpm add -D css-loader
42

Loại

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: ["style-loader", "css-loader"],
      },
    ],
  },
};
2

Vỡ nợ.

yarn add -D css-loader
40

Cho phép thêm hàm băm tùy chỉnh để tạo các lớp độc đáo hơn. Để biết thêm thông tin xem

gói web. cấu hình. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: ["style-loader", "css-loader"],
      },
    ],
  },
};
3

pnpm add -D css-loader
43

Loại

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: ["style-loader", "css-loader"],
      },
    ],
  },
};
4

Vỡ nợ.

pnpm add -D css-loader
62

Cho phép chỉ định hàm băm để tạo các lớp. Để biết thêm thông tin xem

gói web. cấu hình. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: ["style-loader", "css-loader"],
      },
    ],
  },
};
5

pnpm add -D css-loader
44

Loại

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: ["style-loader", "css-loader"],
      },
    ],
  },
};
6

Vỡ nợ.

pnpm add -D css-loader
64

Cho phép chỉ định thông báo băm để tạo các lớp. Để biết thêm thông tin xem

gói web. cấu hình. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: ["style-loader", "css-loader"],
      },
    ],
  },
};
7

pnpm add -D css-loader
45

Loại

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: ["style-loader", "css-loader"],
      },
    ],
  },
};
8

Vỡ nợ.

pnpm add -D css-loader
66

Cho phép chỉ định độ dài thông báo băm để tạo các lớp. Để biết thêm thông tin xem

gói web. cấu hình. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: ["style-loader", "css-loader"],
      },
    ],
  },
};
9

pnpm add -D css-loader
67

Loại.

pnpm add -D css-loader
68 Mặc định.
pnpm add -D css-loader
69

Có nên sử dụng tên cục bộ khi tính toán hàm băm

  • pnpm add -D css-loader
    69 Cả đường dẫn tài nguyên và tên cục bộ đều được sử dụng khi băm. Mỗi mã định danh trong một mô-đun luôn có thông báo băm riêng
  • pnpm add -D css-loader
    71 Tự động phát hiện nếu có thể bỏ qua tên định danh khỏi hàm băm. Sử dụng giá trị này để tối ưu hóa đầu ra để nén GZIP hoặc Brotli tốt hơn

gói web. cấu hình. js

type url =
  | boolean
  | {
      filter: (url: string, resourcePath: string) => boolean;
    };
0

pnpm add -D css-loader
72

Loại

type url =
  | boolean
  | {
      filter: (url: string, resourcePath: string) => boolean;
    };
1

Vỡ nợ.

yarn add -D css-loader
40

gói web. cấu hình. js

type url =
  | boolean
  | {
      filter: (url: string, resourcePath: string) => boolean;
    };
2

pnpm add -D css-loader
74

Loại

type url =
  | boolean
  | {
      filter: (url: string, resourcePath: string) => boolean;
    };
3

Vỡ nợ.

yarn add -D css-loader
40

Cho phép chỉ định một chức năng để tạo tên lớp. Theo mặc định, chúng tôi sử dụng chức năng tích hợp để tạo tên lớp. Nếu hàm tùy chỉnh trả về

pnpm add -D css-loader
76 hoặc
yarn add -D css-loader
40, chúng tôi sẽ sử dụng hàm tích hợp sẵn để tạo tên lớp

gói web. cấu hình. js

type url =
  | boolean
  | {
      filter: (url: string, resourcePath: string) => boolean;
    };
4

pnpm add -D css-loader
78

Loại

type url =
  | boolean
  | {
      filter: (url: string, resourcePath: string) => boolean;
    };
5

Vỡ nợ.

yarn add -D css-loader
14

Bật/tắt các mô-đun ES có tên xuất khẩu cho người dân địa phương

Cảnh báo

Tên của người dân địa phương được chuyển thành chữ thường, tôi. e. tùy chọn

pnpm add -D css-loader
80 có giá trị
pnpm add -D css-loader
81 theo mặc định

Cảnh báo

Không được phép sử dụng các từ dành riêng cho JavaScript trong tên lớp css

phong cách. css

type url =
  | boolean
  | {
      filter: (url: string, resourcePath: string) => boolean;
    };
6

mục lục. js

type url =
  | boolean
  | {
      filter: (url: string, resourcePath: string) => boolean;
    };
7

Bạn có thể kích hoạt mô-đun ES có tên export bằng cách sử dụng

gói web. cấu hình. js

type url =
  | boolean
  | {
      filter: (url: string, resourcePath: string) => boolean;
    };
8

Để đặt tên tùy chỉnh cho tênExport, có thể sử dụng tùy chọn làm chức năng. Ví dụ dưới đây trong phần

pnpm add -D css-loader
84

Loại

type url =
  | boolean
  | {
      filter: (url: string, resourcePath: string) => boolean;
    };
9

Vỡ nợ.

yarn add -D css-loader
14

Cho phép

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
6 xuất tên từ id hoặc lớp toàn cầu, vì vậy bạn có thể sử dụng tên đó làm tên địa phương

gói web. cấu hình. js

url(image.png) => require('./image.png')
url('image.png') => require('./image.png')
url(./image.png) => require('./image.png')
url('./image.png') => require('./image.png')
url('http://dontwritehorriblecode.com/2112.png') => require('http://dontwritehorriblecode.com/2112.png')
image-set(url('image2x.png') 1x, url('image1x.png') 2x) => require('./image1x.png') and require('./image2x.png')
0

pnpm add -D css-loader
80

Loại

url(image.png) => require('./image.png')
url('image.png') => require('./image.png')
url(./image.png) => require('./image.png')
url('./image.png') => require('./image.png')
url('http://dontwritehorriblecode.com/2112.png') => require('http://dontwritehorriblecode.com/2112.png')
image-set(url('image2x.png') 1x, url('image1x.png') 2x) => require('./image1x.png') and require('./image2x.png')
1

Vỡ nợ. dựa trên giá trị quyền chọn

pnpm add -D css-loader
88, nếu
yarn add -D css-loader
11 -
pnpm add -D css-loader
81, nếu không thì
pnpm add -D css-loader
91

Kiểu tên lớp đã xuất

yarn add -D css-loader
50

Theo mặc định, các khóa JSON đã xuất phản ánh tên lớp (i. e giá trị

pnpm add -D css-loader
91)

Cảnh báo

Chỉ cho phép giá trị

pnpm add -D css-loader
81 nếu bạn đặt giá trị
pnpm add -D css-loader
78 thành
yarn add -D css-loader
11

TênLoạiMô tả
pnpm add -D css-loader
97
yarn add -D css-loader
50Tên lớp sẽ được xuất theo nguyên trạng.
pnpm add -D css-loader
99_______0_______50Tên lớp sẽ được lạc đà, tên lớp ban đầu sẽ không bị xóa khỏi người dân địa phương
import css from "file.css";
01
yarn add -D css-loader
50Tên lớp sẽ được lạc đà, tên lớp ban đầu sẽ bị xóa khỏi người dân địa phương
import css from "file.css";
03
yarn add -D css-loader
50Chỉ có dấu gạch ngang trong tên lớp sẽ được lạc đà
import css from "file.css";
05
yarn add -D css-loader
50Dấu gạch ngang trong tên lớp sẽ được lạc đà, lớp ban đầu

tập tin. css

url(image.png) => require('./image.png')
url('image.png') => require('./image.png')
url(./image.png) => require('./image.png')
url('./image.png') => require('./image.png')
url('http://dontwritehorriblecode.com/2112.png') => require('http://dontwritehorriblecode.com/2112.png')
image-set(url('image2x.png') 1x, url('image1x.png') 2x) => require('./image1x.png') and require('./image2x.png')
2

tập tin. js

url(image.png) => require('./image.png')
url('image.png') => require('./image.png')
url(./image.png) => require('./image.png')
url('./image.png') => require('./image.png')
url('http://dontwritehorriblecode.com/2112.png') => require('http://dontwritehorriblecode.com/2112.png')
image-set(url('image2x.png') 1x, url('image1x.png') 2x) => require('./image1x.png') and require('./image2x.png')
3

gói web. cấu hình. js

url(image.png) => require('./image.png')
url('image.png') => require('./image.png')
url(./image.png) => require('./image.png')
url('./image.png') => require('./image.png')
url('http://dontwritehorriblecode.com/2112.png') => require('http://dontwritehorriblecode.com/2112.png')
image-set(url('image2x.png') 1x, url('image1x.png') 2x) => require('./image1x.png') and require('./image2x.png')
4

yarn add -D css-loader
92

gói web. cấu hình. js

url(image.png) => require('./image.png')
url('image.png') => require('./image.png')
url(./image.png) => require('./image.png')
url('./image.png') => require('./image.png')
url('http://dontwritehorriblecode.com/2112.png') => require('http://dontwritehorriblecode.com/2112.png')
image-set(url('image2x.png') 1x, url('image1x.png') 2x) => require('./image1x.png') and require('./image2x.png')
5

gói web. cấu hình. js

url(image.png) => require('./image.png')
url('image.png') => require('./image.png')
url(./image.png) => require('./image.png')
url('./image.png') => require('./image.png')
url('http://dontwritehorriblecode.com/2112.png') => require('http://dontwritehorriblecode.com/2112.png')
image-set(url('image2x.png') 1x, url('image1x.png') 2x) => require('./image1x.png') and require('./image2x.png')
6

import css from "file.css";
08

Loại

url(image.png) => require('./image.png')
url('image.png') => require('./image.png')
url(./image.png) => require('./image.png')
url('./image.png') => require('./image.png')
url('http://dontwritehorriblecode.com/2112.png') => require('http://dontwritehorriblecode.com/2112.png')
image-set(url('image2x.png') 1x, url('image1x.png') 2x) => require('./image1x.png') and require('./image2x.png')
7

Vỡ nợ.

yarn add -D css-loader
14

Chỉ xuất địa phương

Hữu ích khi bạn sử dụng các mô-đun css để kết xuất trước (ví dụ SSR). Để kết xuất trước với

import css from "file.css";
10, bạn nên sử dụng tùy chọn này thay vì
import css from "file.css";
11 trong gói kết xuất trước. Nó không nhúng CSS mà chỉ xuất ánh xạ định danh

gói web. cấu hình. js

url(image.png) => require('./image.png')
url('image.png') => require('./image.png')
url(./image.png) => require('./image.png')
url('./image.png') => require('./image.png')
url('http://dontwritehorriblecode.com/2112.png') => require('http://dontwritehorriblecode.com/2112.png')
image-set(url('image2x.png') 1x, url('image1x.png') 2x) => require('./image1x.png') and require('./image2x.png')
8

yarn add -D css-loader07

Loại

url(image.png) => require('./image.png')
url('image.png') => require('./image.png')
url(./image.png) => require('./image.png')
url('./image.png') => require('./image.png')
url('http://dontwritehorriblecode.com/2112.png') => require('http://dontwritehorriblecode.com/2112.png')
image-set(url('image2x.png') 1x, url('image1x.png') 2x) => require('./image1x.png') and require('./image2x.png')
9

Vỡ nợ.

import css from "file.css";
13

Cho phép bật/tắt hoặc thiết lập số lượng trình tải được áp dụng trước trình tải CSS cho

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
7 quy tắc, mô-đun CSS và nhập ICSS, i. e.
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
7/
import css from "file.css";
16/
import css from "file.css";
17/etc

Tùy chọn

yarn add -D css-loader
07 cho phép bạn định cấu hình số lượng trình tải trước khi áp dụng
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
6 cho các tài nguyên được
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
7 và mô-đun CSS/nhập ICSS

gói web. cấu hình. js

url(~module/image.png) => require('module/image.png')
url('~module/image.png') => require('module/image.png')
url(~aliasDirectory/image.png) => require('otherDirectory/image.png')
0

Điều này có thể thay đổi trong tương lai khi hệ thống mô-đun (i. e. webpack) hỗ trợ kết hợp trình tải theo nguồn gốc

yarn add -D css-loader06

Loại

url(~module/image.png) => require('module/image.png')
url('~module/image.png') => require('module/image.png')
url(~aliasDirectory/image.png) => require('otherDirectory/image.png')
1

Vỡ nợ. phụ thuộc vào giá trị

import css from "file.css";
22

Theo mặc định, việc tạo bản đồ nguồn phụ thuộc vào tùy chọn

import css from "file.css";
23. Tất cả các giá trị cho phép tạo bản đồ nguồn ngoại trừ giá trị
import css from "file.css";
24 và
yarn add -D css-loader
14

gói web. cấu hình. js

url(~module/image.png) => require('module/image.png')
url('~module/image.png') => require('module/image.png')
url(~aliasDirectory/image.png) => require('otherDirectory/image.png')
2

yarn add -D css-loader08

Loại

url(~module/image.png) => require('module/image.png')
url('~module/image.png') => require('module/image.png')
url(~aliasDirectory/image.png) => require('otherDirectory/image.png')
3

Vỡ nợ.

yarn add -D css-loader
11

Theo mặc định,

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
6 tạo các mô-đun JS sử dụng cú pháp mô-đun ES. Có một số trường hợp sử dụng mô-đun ES có lợi, chẳng hạn như trong trường hợp nối mô-đun và rung cây

Bạn có thể kích hoạt cú pháp mô-đun CommonJS bằng cách sử dụng

gói web. cấu hình. js

url(~module/image.png) => require('module/image.png')
url('~module/image.png') => require('module/image.png')
url(~aliasDirectory/image.png) => require('otherDirectory/image.png')
4

yarn add -D css-loader09

Loại

url(~module/image.png) => require('module/image.png')
url('~module/image.png') => require('module/image.png')
url(~aliasDirectory/image.png) => require('otherDirectory/image.png')
5

Vỡ nợ.

import css from "file.css";
30

Cho phép xuất các kiểu dưới dạng mảng với các mô-đun, chuỗi hoặc biểu định kiểu có thể xây dựng (i. e.

import css from "file.css";
31). Giá trị mặc định là
import css from "file.css";
30, tôi. e. trình tải xuất mảng mô-đun với API cụ thể được sử dụng trong
import css from "file.css";
33 hoặc khác

gói web. cấu hình. js

url(~module/image.png) => require('module/image.png')
url('~module/image.png') => require('module/image.png')
url(~aliasDirectory/image.png) => require('otherDirectory/image.png')
6

src/chỉ mục. js

url(~module/image.png) => require('module/image.png')
url('~module/image.png') => require('module/image.png')
url(~aliasDirectory/image.png) => require('otherDirectory/image.png')
7

import css from "file.css";
30

Xuất mặc định là mảng các mô-đun có API cụ thể được sử dụng trong

import css from "file.css";
33 hoặc khác

gói web. cấu hình. js

url(~module/image.png) => require('module/image.png')
url('~module/image.png') => require('module/image.png')
url(~aliasDirectory/image.png) => require('otherDirectory/image.png')
8

src/chỉ mục. js

url(~module/image.png) => require('module/image.png')
url('~module/image.png') => require('module/image.png')
url(~aliasDirectory/image.png) => require('otherDirectory/image.png')
9

import css from "file.css";
36

Cảnh báo

Bạn không cần

import css from "file.css";
33 nữa, hãy xóa nó đi

Cảnh báo

Tùy chọn

import css from "file.css";
38 nên được bật nếu bạn muốn sử dụng nó với , theo mặc định cho người dân địa phương sẽ được sử dụng

Xuất mặc định là

yarn add -D css-loader
50

gói web. cấu hình. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
0

src/chỉ mục. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
1

import css from "file.css";
41

Cảnh báo

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
7 quy tắc chưa được phép, hơn thế nữa

Cảnh báo

Bạn không cần

import css from "file.css";
33 nữa, hãy xóa nó đi

Cảnh báo

Tùy chọn

import css from "file.css";
38 nên được bật nếu bạn muốn sử dụng nó với , theo mặc định cho người dân địa phương sẽ được sử dụng

Cảnh báo

Bản đồ nguồn hiện không được hỗ trợ trong

import css from "file.css";
46 do lỗi

Xuất mặc định là biểu định kiểu có thể xây dựng (i. e.

import css from "file.css";
31)

Hữu ích cho các phần tử tùy chỉnh và DOM bóng

Thêm thông tin

  • Sử dụng Tập lệnh mô-đun CSS để nhập biểu định kiểu
  • Biểu định kiểu có thể xây dựng. phong cách tái sử dụng liền mạch

gói web. cấu hình. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
2

src/chỉ mục. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
3

Đối với mục đích di chuyển, bạn có thể sử dụng cấu hình sau

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
4

ví dụ

Gợi ý

For

import css from "file.css";
48 builds it's recommended to extract the CSS from your bundle being able to use parallel loading of CSS/JS resources later on. This can be achieved by using the mini-css-extract-plugin, because it creates separate css files. For
import css from "file.css";
49 mode (including
import css from "file.css";
50) you can use style-loader, because it injects CSS into the DOM using multiple and works faster.

Ghi chú

Không sử dụng

import css from "file.css";
33 và
import css from "file.css";
10 cùng nhau

gói web. cấu hình. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
5

Vô hiệu hóa giải quyết url bằng cách sử dụng nhận xét import css from "file.css";53

Với sự trợ giúp của nhận xét

import css from "file.css";
53, có thể vô hiệu hóa việc xử lý nguồn cho các quy tắc và cho các khai báo riêng lẻ

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
6

Tài sản

import css from "file.css";
55 sau đây có thể tải các tệp CSS, nhúng các hình ảnh PNG/JPG/GIF/SVG nhỏ cũng như phông chữ dưới dạng URL dữ liệu và sao chép các tệp lớn hơn vào thư mục đầu ra

Đối với gói web v5

gói web. cấu hình. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
7

Trích xuất

Đối với các bản dựng sản xuất, bạn nên trích xuất CSS từ gói của mình để có thể sử dụng tải song song các tài nguyên CSS/JS sau này

  • Điều này có thể đạt được bằng cách sử dụng mini-css-extract-plugin để trích xuất CSS khi chạy ở chế độ sản xuất

  • Thay vào đó, nếu tìm kiếm hiệu suất phát triển tốt hơn và kết quả đầu ra css bắt chước quá trình sản xuất. extract-css-chunks-webpack-plugin cung cấp một mô-đun nóng tải lại phiên bản mở rộng, thân thiện của mini-css-extract-plugin. Các tệp CSS thực của HMR trong dev, hoạt động như mini-css trong non-dev

CSS thuần túy, mô-đun CSS và PostCSS

Khi bạn có CSS ​​thuần túy (không có mô-đun CSS), mô-đun CSS và PostCSS trong dự án của mình, bạn có thể sử dụng thiết lập này

gói web. cấu hình. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
8

Giải quyết các URL chưa được giải quyết bằng bí danh

mục lục. css

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
9

gói web. cấu hình. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
0

Xuất có tên với tên xuất tùy chỉnh

gói web. cấu hình. js

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
1

Tách các tính năng chỉ dành cho pnpm add -D css-loader15 và import css from "file.css";57

Thiết lập sau đây là một ví dụ về việc chỉ cho phép các tính năng

pnpm add -D css-loader
15 (chẳng hạn như
pnpm add -D css-loader
16 và
pnpm add -D css-loader
17) mà không sử dụng thêm chức năng
import css from "file.css";
57 bằng cách đặt tùy chọn
yarn add -D css-loader
51 cho tất cả các tệp không khớp với quy ước đặt tên
import css from "file.css";
63. Đây là để tham khảo vì có các tính năng
import css from "file.css";
64 được áp dụng cho tất cả các tệp là hành vi mặc định của
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: {
            filter: (url, resourcePath) => {
              // resourcePath - path to css file

              // Don't handle `img.png` urls
              if (url.includes("img.png")) {
                return false;
              }

              // Don't handle images under root-relative /external_images/
              if (/^\/external_images\//.test(path)) {
                return false;
              }

              return true;
            },
          },
        },
      },
    ],
  },
};
6 trước v4. Trong khi đó, tất cả các tệp phù hợp với
import css from "file.css";
63 được coi là
import css from "file.css";
67 trong ví dụ này

Một trường hợp ví dụ được giả định khi một dự án yêu cầu các biến bản vẽ canvas được đồng bộ hóa với CSS - bản vẽ canvas sử dụng cùng một màu (được đặt theo tên màu trong JavaScript) làm nền HTML (được đặt theo tên lớp trong CSS)

Tại sao tệp CSS của tôi không hoạt động trong React?

Lỗi này được tạo ra bởi vì trình biên dịch chỉ có thể nhập tệp từ thư mục src . Ở đây file CSS được lưu ngoài thư mục src nên trình biên dịch không import được. Để mã này hoạt động, bạn chỉ cần lưu tệp CSS bên trong thư mục src.

Tại sao nên sử dụng các mô-đun CSS trong React?

Nó làm giảm phạm vi toàn cầu của phong cách React. Ngoài ra, nó là một công cụ ngăn chặn phạm vi toàn cầu và xung đột bằng cách tạo một chuỗi ngẫu nhiên dưới dạng tên className và thêm một hàm băm duy nhất để làm cho mỗi className trở nên độc nhất. Chúng ta có thể ngăn xung đột không gian tên cho các lớp CSS bằng cách sử dụng Mô-đun CSS

React có hỗ trợ các mô-đun CSS không?

Hỗ trợ mô-đun CSS được cung cấp bởi ứng dụng tạo phản ứng ngay lập tức vì vậy chúng tôi không cần cài đặt hoặc định cấu hình bất kỳ thứ gì để nó hoạt động. Khi làm việc với React, quy ước đặt tên tệp CSS bằng. mô-đun. phần mở rộng css.

Tôi có nên sử dụng các mô-đun CSS không?

Mô-đun CSS cho phép bạn viết kiểu trong tệp CSS nhưng sử dụng chúng dưới dạng đối tượng JavaScript để xử lý bổ sung và đảm bảo an toàn . Mô-đun CSS rất phổ biến vì chúng tự động đặt tên lớp và hoạt hình thành duy nhất, do đó bạn không phải lo lắng về xung đột tên bộ chọn.