核心提示:根据博文webpack3学习1Getting Started的操作,现在会有一个小项目,显示 Hello webpack。现在我们尝试整合一些其他资源,比如CSS和图片,看看 webpack 如何处理...
根据博文webpack3学习1–Getting Started的操作,现在会有一个小项目,显示 “Hello webpack”。现在我们尝试整合一些其他资源,比如CSS和图片,看看 webpack 如何处理。
加载CSS
为了从JavaScript模块中import一个CSS文件,你需要在module配置中 安装并添加 style-loader 和 css-loader:
cnpm install --save-dev style-loader css-loader
webpack.config.js增加module==>rules配置:
var path = require('path'); module.exports = { entry: './src/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') }, module: { rules: [ { test: /\.css$/, use: ['style-loader', 'css-loader'] } ] } };
在项目中添加一个新的 style.css 文件,并将其导入到我们的 index.js 中:
.hello { color: red; }
import _ from 'lodash'; import './style.css'; function component() { var element = document.createElement('p'); element.innerHTML = _.join(['Hello', 'webpack'], ' '); element.classList.add('hello'); return element; } document.body.appendChild(component());
运行
npm run build http-server
浏览器访问https://localhost:8080/dist/ ,可以看到Hello webpack变红了。
加载图片
可以使用 file-loader加载图片。
cnpm install --save-dev file-loader
webpack.config.js增加file-loader的配置
var path = require('path'); module.exports = { entry: './src/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') }, module: { rules: [ { test: /\.css$/, use: ['style-loader', 'css-loader'] }, { test: /\.(png|svg|jpg|gif)$/, use: ['file-loader'] } ] } };
src目录下增加测试图片icon.png
webpack-demo |- package.json |- webpack.config.js |- /dist |- bundle.js |- index.html |- /src + |- icon.png |- style.css |- index.js |- /node_modules
index.js如下
import _ from 'lodash'; import './style.css'; import Icon from './icon.png'; function component() { var element = document.createElement('p'); element.innerHTML = _.join(['Hello', 'webpack'], ' '); element.classList.add('hello');//样式 var myIcon = new Image(); myIcon.src = Icon; element.appendChild(myIcon);//图片 return element; } document.body.appendChild(component());
style.css增加背景图片:
.hello { color: red; background: url('./icon.png'); }
运行
npm run build http-server
浏览器访问https://localhost:8080/dist/ ,可以看到图片和背景图片。
webpack资源管理还可以加载字体、数据、全局资源等,下一步再研究。