Không tìm thấy mô-đun không thể giải quyết chỉ mục css

Xin chào, tôi đang gặp sự cố với đường dẫn mà tôi vừa tạo. nó khá cơ bản

image: node:16

pipelines:
  default:
    - parallel:
        - step:
            name: Banking Front end
            caches:
              - node
            script:
              - npm install
              - npm run build
              - npm test

Nhưng tôi đang gặp lỗi này

> webpack --config webpack/webpack.config.js --env env=prod
ERROR in ./src/common/styles/injectors.css (./node_modules/css-loader/dist/cjs.js!./src/common/styles/injectors.css) 5:36-107
Module not found: Error: Can't resolve './Fonts/Rauschen/Rauschen-ARegular-Web.woff' in '/opt/atlassian/pipelines/agent/build/src/common/styles'
 @ ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/common/styles/authPage.scss 4:0-111 6:26-59
 @ ./src/common/styles/authPage.scss 8:6-155 22:17-24 26:0-125 26:0-125 27:22-29 27:33-47 27:50-64
 @ ./src/views/logOutPage.tsx 7:0-40
 @ ./src/common/router/routerContainer.tsx 29:9-41
 @ ./src/index.tsx 5:0-62 39:32-47

khi tôi chạy

npm chạy xây dựng

ở địa phương nó hoạt động như bình thường

Là vấn đề ở đâu đó trong webpack?

module.exports = {
	entry: path.resolve(__dirname, '..', '/src/index.tsx'),
	resolve: {
		extensions: ['.tsx', '.ts', '.js'],
	},
	module: {
		rules: [
			{
				test: /\.(ts|js)x?$/,
				exclude: /node_modules/,
				use: [
					{
						loader: 'babel-loader',
					},
				],
			},
			{
				test: /\.css$/,
				use: ['style-loader', 'css-loader'],
			},
			{
				test: /\.s[ac]ss$/i,
				use: [
					// Creates `style` nodes from JS strings
					"style-loader",
					// Translates CSS into CommonJS
					"css-loader",
					// Compiles Sass to CSS
					"sass-loader"
				]
			},
			{
				test: /\.(woff(2)?|eot|ttf|otf|)$/,
				type: 'asset/inline',
			},
			{
				test: /\.(png|jpe?g|gif|jp2|webp|ico|svg)$/,
				loader: 'file-loader',
				options: {
					name: '[name].[ext]',
				},
			},
		],
	},
	plugins: [
	],
	stats: 'errors-only',


module.exports = (envVars) => {
	const { env } = envVars
	const envConfig = require(`./webpack.${env}.js`)
	const config = merge(commonConfig, envConfig)
	return config
}

từ chối trách nhiệm. css-loader là gói của bên thứ ba do các thành viên cộng đồng duy trì, gói này có thể không có hỗ trợ, chính sách bảo mật hoặc giấy phép giống như gói webpack và gói này không được webpack duy trì

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
2 giải thích
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
3 và
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
4 giống như
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
5 và sẽ giải quyết chúng

Bắt đầu

Cảnh báo

Để sử dụng css-loader, cần có webpack@5

Để bắt đầu, bạn cần cài đặt

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

npm install --save-dev css-loader

hoặc là

yarn add -D css-loader

hoặc là

pnpm add -D css-loader

Sau đó, thêm plugin vào cấu hình

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
7 của bạn. Ví dụ

tập tin. js

import css from "file.css";

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

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

Và chạy

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
7 thông qua phương pháp ưa thích của bạn

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

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

Loại

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

Vỡ nợ.

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

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

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
9 và
type import =
  | boolean
  | { filter: (url: string, media: string, resourcePath: string) => boolean };
2. Nếu được đặt thành
type import =
  | boolean
  | { filter: (url: string, media: string, resourcePath: string) => boolean };
3, thì
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
2 sẽ không phân tích cú pháp bất kỳ đường dẫn nào được chỉ định trong
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
9 hoặc
type import =
  | boolean
  | { filter: (url: string, media: string, resourcePath: string) => boolean };
2. 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ừ đường dẫn

type import =
  | boolean
  | { filter: (url: string, media: string, resourcePath: string) => boolean };
7 (bao gồm
type import =
  | boolean
  | { filter: (url: string, media: string, resourcePath: string) => boolean };
8) và đối với ____18_______9, hãy đặt trước nó một ____10_______00

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
01

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

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

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
03

Cho phép lọc

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
4. Tất cả
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
4 đã 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 06

Loại

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

Vỡ nợ.

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

Cho phép bật/tắt

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
3 xử lý theo quy tắc. Kiểm soát
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
3 giải quyết. Các url tuyệt đối trong
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
3 sẽ được di chuyển trong mã thời gian chạy

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

yarn add -D css-loader
0

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

type import =
  | boolean
  | { filter: (url: string, media: string, resourcePath: string) => boolean };
7 (bao gồm
type import =
  | boolean
  | { filter: (url: string, media: string, resourcePath: string) => boolean };
8) và đối với ____18_______9, hãy đặt trước nó một ____10_______00

yarn add -D css-loader
1

yarn add -D css-loader
01

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

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

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

yarn add -D css-loader
2

yarn add -D css-loader
03

yarn add -D css-loader
18

Loại

yarn add -D css-loader
3

Vỡ nợ.

yarn add -D css-loader
19

Cho phép lọc

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
3. Tất cả
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
3 đã 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 22

Loại

yarn add -D css-loader
4

Vỡ nợ.

yarn add -D css-loader
19

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
    
    19 - 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
    
    25 và
    yarn add -D css-loader
    
    26
  • type import =
      | boolean
      | { filter: (url: string, media: string, resourcePath: string) => boolean };
    0 - kích hoạt các mô-đun CSS cho tất cả các tệp
  • type import =
      | boolean
      | { filter: (url: string, media: string, resourcePath: string) => boolean };
    3 - vô hiệu hóa Mô-đun CSS cho tất cả các tệp
  • yarn add -D css-loader
    
    29 - 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
    
    30, bạn có thể đọc thêm thông tin
  • yarn add -D css-loader
    
    03 - 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
    
    32 không được chỉ định, nếu không, tùy chọn
    yarn add -D css-loader
    
    32 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
22 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ị

type import =
  | boolean
  | { filter: (url: string, media: string, resourcePath: string) => boolean };
3 giúp 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, điều này sẽ hữu ích cho các nhà phát triển sử dụng css vanilla 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
5

yarn add -D css-loader
36

yarn add -D css-loader
37

Sử dụng giá trị

yarn add -D css-loader
38 yêu cầu bạn chỉ định lớp
yarn add -D css-loader
39. Sử dụng giá trị
yarn add -D css-loader
40 yêu cầu bạn chỉ định lớp
yarn add -D css-loader
41. Sử dụng giá trị
yarn add -D css-loader
42 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
43 có thể được sử dụng để khai báo
yarn add -D css-loader
44 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
41 (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
46 có thể được sử dụng để khai báo một bộ chọn toàn cục rõ ràng. Với chế độ toàn cầu
yarn add -D css-loader
39 (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
6_______10_______7

Ghi chú

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

yarn add -D css-loader
8

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
48, 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
49

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

yarn add -D css-loader
9

Đ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
0_______11_______1
yarn add -D css-loader
50

Để 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 nên sử dụng tệp nào

pnpm add -D css-loader
2_______11_______3

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

yarn add -D css-loader
51

pnpm add -D css-loader
4
yarn add -D css-loader
52

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

yarn add -D css-loader
53 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
54 cho các giá trị,
yarn add -D css-loader
55 cho bộ chọn và
yarn add -D css-loader
56 cho quy tắc phương tiện

pnpm add -D css-loader
5

yarn add -D css-loader
01

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
5

yarn add -D css-loader
29

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

yarn add -D css-loader
30

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

yarn add -D css-loader
03

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

pnpm add -D css-loader
7
yarn add -D css-loader
61

Loại

pnpm add -D css-loader
8

Vỡ nợ.

yarn add -D css-loader
19

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
22 là đối tượng

Những giá trị khả thi

  • yarn add -D css-loader
    
    19 - kích hoạt các mô-đun CSS cho tất cả các tệp
  • type import =
      | boolean
      | { filter: (url: string, media: string, resourcePath: string) => boolean };
    0 - 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
    
    25 và
    yarn add -D css-loader
    
    26
  • type import =
      | boolean
      | { filter: (url: string, media: string, resourcePath: string) => boolean };
    3 - vô hiệu hóa Mô-đun CSS
  • yarn add -D css-loader
    
    69 - kích hoạt các mô-đun CSS cho tất cả các tệp phù hợp với regexp
    yarn add -D css-loader
    
    70
  • yarn add -D css-loader
    
    71 - 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
01

Những giá trị khả thi

  • type import =
      | boolean
      | { filter: (url: string, media: string, resourcePath: string) => boolean };
    0 - 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
    
    38 cho tất cả các tệp thỏa mãn điều kiện
    yarn add -D css-loader
    
    76 hoặc đặt tùy chọn thành giá trị
    yarn add -D css-loader
    
    78 cho tất cả các tệp thỏa mãn điều kiện
    yarn add -D css-loader
    
    26
  • type import =
      | boolean
      | { filter: (url: string, media: string, resourcePath: string) => boolean };
    3 - 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

pnpm add -D css-loader
9_______10_______69

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";
0_______10_______71

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";
1
yarn add -D css-loader
30

Loại

import css from "file.css";
2

Vỡ nợ.

yarn add -D css-loader
84

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

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

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
38,
yarn add -D css-loader
40 và
yarn add -D css-loader
42 xử lý phạm vi
yarn add -D css-loader
90 và
yarn add -D css-loader
91 và giá trị
yarn add -D css-loader
53.
yarn add -D css-loader
78 sẽ chỉ biên dịch định dạng
yarn add -D css-loader
94 cấp thấp để khai báo các phụ thuộc
yarn add -D css-loader
95 và
yarn add -D css-loader
96 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
29

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

yarn add -D css-loader
38,
yarn add -D css-loader
40,
yarn add -D css-loader
42 và
yarn add -D css-loader
78

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

import css from "file.css";
3
yarn add -D css-loader
71

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

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

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

yarn add -D css-loader
38,
yarn add -D css-loader
40,
yarn add -D css-loader
42 và
yarn add -D css-loader
78

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

pnpm add -D css-loader
08

Loại

import css from "file.css";
4

Vỡ nợ.

pnpm add -D css-loader
09

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
    
    10 tên cơ sở của tài nguyên
  • pnpm add -D css-loader
    
    11 thư mục tài nguyên liên quan đến tùy chọn
    pnpm add -D css-loader
    
    12 hoặc tùy chọn
    pnpm add -D css-loader
    
    13
  • pnpm add -D css-loader
    
    14 đường dẫn của tài nguyên liên quan đến tùy chọn
    pnpm add -D css-loader
    
    12 hoặc tùy chọn
    pnpm add -D css-loader
    
    13
  • pnpm add -D css-loader
    
    17 - tên tệp và đường dẫn
  • pnpm add -D css-loader
    
    18 - phần mở rộng với đầu
    pnpm add -D css-loader
    
    19
  • pnpm add -D css-loader
    
    20 - hàm băm của chuỗi, được tạo dựa trên
    pnpm add -D css-loader
    
    21,
    pnpm add -D css-loader
    
    22,
    pnpm add -D css-loader
    
    23,
    pnpm add -D css-loader
    
    24,
    pnpm add -D css-loader
    
    25,
    pnpm add -D css-loader
    
    26 và
    pnpm add -D css-loader
    
    27
  • pnpm add -D css-loader
    
    28 - hàm băm với cài đặt hàm băm
  • pnpm add -D css-loader
    
    29 - lớp ban đầu

khuyến nghị

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

Trình giữ chỗ

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

Ghi chú. tất cả các ký tự dành riêng (_______11_______33) 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
29) sẽ được chuyển đổi thành
pnpm add -D css-loader
35

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

import css from "file.css";
5
pnpm add -D css-loader
25

Loại

import css from "file.css";
6

Vỡ nợ.

pnpm add -D css-loader
12

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

import css from "file.css";
7
pnpm add -D css-loader
21

Loại

import css from "file.css";
8

Vỡ nợ.

yarn add -D css-loader
19

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

import css from "file.css";
9
pnpm add -D css-loader
22

Loại

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

Vỡ nợ.

pnpm add -D css-loader
41

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"],
      },
    ],
  },
};
1
pnpm add -D css-loader
23

Loại

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

Vỡ nợ.

pnpm add -D css-loader
43

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"],
      },
    ],
  },
};
3
pnpm add -D css-loader
24

Loại

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

Vỡ nợ.

pnpm add -D css-loader
45

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"],
      },
    ],
  },
};
5
pnpm add -D css-loader
46

Loại.

pnpm add -D css-loader
47 Mặc định.
pnpm add -D css-loader
48

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
    
    48 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
    
    50 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

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

Loại

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

Vỡ nợ.

yarn add -D css-loader
19

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

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

Loại

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

Vỡ nợ.

yarn add -D css-loader
19

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
55 hoặc
yarn add -D css-loader
19, 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;
    };
0
pnpm add -D css-loader
57

Loại

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

Vỡ nợ.

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

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
59 có giá trị
pnpm add -D css-loader
60 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;
    };
2

mục lục. js

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

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;
    };
4

Để đặ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
63

Loại

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

Vỡ nợ.

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

Cho phép

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
2 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

type url =
  | boolean
  | {
      filter: (url: string, resourcePath: string) => boolean;
    };
6
pnpm add -D css-loader
59

Loại

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

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

pnpm add -D css-loader
67, nếu
type import =
  | boolean
  | { filter: (url: string, media: string, resourcePath: string) => boolean };
0 -
pnpm add -D css-loader
60, nếu không thì
pnpm add -D css-loader
70

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

yarn add -D css-loader
29

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
70)

Cảnh báo

Chỉ cho phép giá trị

pnpm add -D css-loader
60 nếu bạn đặt giá trị
pnpm add -D css-loader
57 thành
type import =
  | boolean
  | { filter: (url: string, media: string, resourcePath: string) => boolean };
0

TênLoạiMô tả
pnpm add -D css-loader
76
yarn add -D css-loader
29Tên lớp sẽ được xuất theo nguyên trạng.
pnpm add -D css-loader
78
yarn add -D css-loader
29Tê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
pnpm add -D css-loader
80
yarn add -D css-loader
29Tê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
pnpm add -D css-loader
82
yarn add -D css-loader
29Chỉ dấu gạch ngang trong tên lớp sẽ được lạc đà
pnpm add -D css-loader
84
yarn add -D css-loader
29Dấu gạch ngang trong tên lớp sẽ được lạc đà, lớp ban đầu

tập tin. css

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

tập tin. js

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

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
yarn add -D css-loader
71

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')
1

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

pnpm add -D css-loader
87

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')
2

Vỡ nợ.

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

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

pnpm add -D css-loader
89, bạn nên sử dụng tùy chọn này thay vì
pnpm add -D css-loader
90 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')
3

pnpm add -D css-loader 91

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')
4

Vỡ nợ.

pnpm add -D css-loader
92

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: true,
        },
      },
    ],
  },
};
3 quy tắc tại, mô-đun CSS và nhập ICSS, i. e.
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
3/
pnpm add -D css-loader
95/
pnpm add -D css-loader
96/etc

Tùy chọn

pnpm add -D css-loader
91 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: true,
        },
      },
    ],
  },
};
2 cho tài nguyên
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
3ed và mô-đun CSS/nhập ICSS

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

Đ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

import css from "file.css";00

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')
5

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

import css from "file.css";
01

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";
02. 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";
03 và
type import =
  | boolean
  | { filter: (url: string, media: string, resourcePath: string) => boolean };
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')
6

import css from "file.css";05

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ợ.

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

Theo mặc định,

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
2 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(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

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')
9

Vỡ nợ.

import css from "file.css";
09

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";
10). Giá trị mặc định là
import css from "file.css";
09, 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";
12 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')
0

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')
1

import css from "file.css";
09

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";
12 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')
2

src/chỉ mục. js

import css from "file.css";
15

Cảnh báo

Bạn không cần

import css from "file.css";
12 nữa, vui lòng xóa nó đi

Cảnh báo

Tùy chọn

import css from "file.css";
17 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
29

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')
3

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')
4

import css from "file.css";
20

Cảnh báo

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        loader: "css-loader",
        options: {
          url: true,
        },
      },
    ],
  },
};
3 quy tắc chưa được phép, thêm

Cảnh báo

Bạn không cần

import css from "file.css";
12 nữa, vui lòng xóa nó đi

Cảnh báo

Tùy chọn

import css from "file.css";
17 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";
25 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";
10)

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

Thêm thông tin

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

src/chỉ mục. js

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

ví dụ

Gợi ý

Đối với các bản dựng

import css from "file.css";
27, 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, vì nó tạo các tệp css riêng biệt. Đối với chế độ
import css from "file.css";
28 (bao gồm cả
import css from "file.css";
29), bạn có thể sử dụng trình tải kiểu, vì nó đưa CSS vào DOM bằng cách sử dụng nhiều và hoạt động nhanh hơn

Ghi chú

Không sử dụng

import css from "file.css";
12 và
pnpm add -D css-loader
89 cùng nhau

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')
5

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

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

Tài sản

import css from "file.css";
33 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

Đố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

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

mục lục. css

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

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')
7

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

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

Tách các tính năng chỉ dành cho yarn add -D css-loader 94 và import css from "file.css";35

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

yarn add -D css-loader
94 (chẳng hạn như
yarn add -D css-loader
95 và
yarn add -D css-loader
96) mà không sử dụng thêm chức năng
import css from "file.css";
35 bằng cách đặt tùy chọn
yarn add -D css-loader
30 cho tất cả các tệp không khớp với quy ước đặt tên của
import css from "file.css";
41. Điều này mang tính tham khảo vì có _______13_______42 tính năng được áp dụng cho tất cả các tệp là hành vi _______4_______2 mặc định trước v4. Trong khi đó, tất cả các tệp phù hợp với
import css from "file.css";
41 được coi là
import css from "file.css";
45 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)

Làm cách nào để cài đặt trình tải CSS trong React?

Trình tải CSS trong ReactJS .
bước. Npm chạy eject. .
Thay đổi cấu hình Webpack. Chúng tôi cần định cấu hình trình tải webpack để kích hoạt trình tải css, sau đó sẽ cung cấp cách đặt tên động cho các lớp của chúng tôi. .
Nhập động các tệp css. nhập kiểu từ '. /Ứng dụng. css'
Thí dụ. .
đầu ra

CSS mô-đun là gì?

Mô-đun CSS là " tệp CSS trong đó tất cả tên lớp và tên hoạt ảnh được đặt trong phạm vi cục bộ theo mặc định ". Thay vì có các tệp và lớp CSS tĩnh, Mô-đun CSS tạo triển khai động nằm trong phạm vi cục bộ cho HTML với sự trợ giúp của Webpack hoặc Browserify.