06、Webpack使用loader配置css文件、图片文件、
目录
Webpack
css文件的配置
loader 让 webpack 能够去处理那些非 JavaScript 文件(webpack 自身只理解 JavaScript)。loader 可以将所有类型的文件转换为 webpack 能够处理的有效模块,然后你就可以利用 webpack 的打包能力,对它们进行处理。
本质上,webpack loader 将所有类型的文件,转换为应用程序的依赖图(和最终的 bundle)可以直接引用的模块。
你可以使用 loader 告诉 webpack 加载 CSS 文件,为此,首先安装相对应的 loader:
npm install --save-dev css-loader
然后指示 webpack 对每个 .css
使用 css-loader
,
module: { rules: [ { test: /\.css$/, use: ‘css-loader‘ } ] }
css-loader
只负责加载css文件,不负责渲染。
npm install style-loader --save-dev
建议将 style-loader
与 css-loader
结合使用。
package.json
{ "name": "meetwebpack", "version": "1.0.0", "description": "", "main": "webpack.config.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "webpack" }, "author": "", "license": "ISC", "devDependencies": { "css-loader": "^3.5.3", "style-loader": "^1.2.0", "webpack": "^3.6.0" } }
webpack.config.js
const path = require(‘path‘); module.exports = { entry: ‘./src/main.js‘, output: { path: path.resolve(__dirname, ‘dist‘), filename: ‘my-first-webpack-bundle.js‘ }, module: { rules: [ { /* 正则表达式,.在正则表达式中有特殊含义,所以必须用\转义符,表示以.css结尾的文件 */ test: /\.css$/, use: [ /* 使用多个loader时,从右向左读取 */ {loader: "style-loader"}, {loader: "css-loader"} ] } ] } }
main.js
let obj = require(‘./js/mathUtils‘) let sum = obj.sum; let mul = obj.mul; console.log(sum(12, 13)); console.log(mul(12, 12)); require(‘./css/normal.css‘);
mathUtils.js
function sum(num1, num2) { return num1 + num2; } function mul(num1, num2) { return num1 * num2; } module.exports = { sum: sum, mul: mul }
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script src="./dist/my-first-webpack-bundle.js"></script> </body> </html>
项目结构:
效果:
图片文件的配置
安装开发时依赖
npm install --save-dev url-loader
当图片大小小于limit限制时,会将图片编译为base64的字符串形式。
当图片大小大于limit限制时,npm run build,会报错。没有找到file-loader。
安装开发时依赖
npm install --save-dev file-loader
代码:
body { background: url("../img/wallhaven-r2ewxq.jpg"); }
const path = require("path") module.exports = { entry: ‘./src/main.js‘, output: { path: path.resolve(__dirname, ‘dist‘), filename: ‘my-webpack-bundle.js‘, publicPath: ‘./dist/‘ }, module: { rules: [ { test: /\.css$/, use: [ {loader: "style-loader"}, {loader: "css-loader"} ] }, { test: /\.(png|jpg|gif)$/, use: [ { loader: ‘url-loader‘, options: { /* 图片实际大小738,180 */ /*limit: 8192*/ /* 当加载的图片大小小于limit时,会将图片编译成base64的字符串形式 */ /*limit: 800000*/ /* 当加载的图片大小大于limit时,npm run build会报错,如果大于需要使用file-loader */ /* ERROR in ./src/img/wallhaven-r2ewxq.jpg Module build failed: Error: Cannot find module ‘file-loader‘ */ limit: 700000, /* 打包到dist文件夹,在output下增加publicPath属性 */ /* 给生成的图片设置名称,ext使用图片以前的扩展名 */ name: ‘img/[name].[hash:8].[ext]‘ }, } ] } ] } }
{ "name": "imgfile", "version": "1.0.0", "description": "", "main": "webpack.config.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "webpack" }, "author": "lwj", "license": "ISC", "devDependencies": { "css-loader": "^3.5.3", "file-loader": "^6.0.0", "style-loader": "^1.2.0", "url-loader": "^4.1.0", "webpack": "^3.6.0" } }
相关推荐
不知道该写啥QAQ 2020-11-12
webfullStack 2020-11-09
Yvettre 2020-09-15
想做大牛的蜗牛 2020-10-30
gloria0 2020-10-26
gaojie0 2020-09-11
SelinaChan 2020-08-14
不知道该写啥QAQ 2020-08-09
gloria0 2020-08-09
不知道该写啥QAQ 2020-08-02
hline 2020-07-29
SelinaChan 2020-07-28
wangdianyong 2020-07-23
webpackvuees 2020-07-23
yqoxygen 2020-07-20
不知道该写啥QAQ 2020-07-18
81463166 2020-07-17
yqoxygen 2020-07-16