webpack打包

一、打包css

 

 index.js

import avatar from './avatar.jpg';
// 引入 scss 文件
import './index.scss';

var img = new Image();
img.src = avatar;
img.classList.add('avatar');

var root = document.getElementById('root');
root.append(img);

index.scss

// scss语法
body {
	.avatar {
		width: 150px;
		height: 150px;
		// postcss-loader 需要配置postcss.config.js
		transform: translate(100px, 100px);
	}
}

 webpack.config.js

const path = require('path');

module.exports = {
	mode: 'development',
	entry: {
		main: './src/index.js'
	},
	module: {
		rules: [{
			test: /\.(jpg|png|gif)$/,
			use: {
				loader: 'url-loader',
				options: {
					name: '[name]_[hash].[ext]',
					outputPath: 'images/',
					limit: 10240
				}
			} 
		},{

			// !loader处理是是有顺序的,从下往上
			// 处理css style-loader css-loader 来处理 (npm install style-loader css-loader)

			// .sass 需要先转换为 css 然后挂载到页面
			// 世界上最成熟、最稳定、最强大的专业级CSS扩展语言! https://www.sass.hk/
			// npm install sass-loader node-sass webpack --save-dev
			// https://webpack.js.org/loaders/sass-loader/
			test: /\.scss$/,
			use: [
				'style-loader', 
				'css-loader', 
				'sass-loader',
				// postcss-loader用来添加厂商前缀的(-webkit-transform)
				// https://webpack.js.org/loaders/postcss-loader/
				'postcss-loader'
			]
		}]
	},
	output: {
		filename: 'bundle.js',
		path: path.resolve(__dirname, 'dist')
	}
}

 postcss.config.js

module.exports = {
  plugins: [
    // 需要安装插件
    //  npm install autoprefixer -D
  	require('autoprefixer')
  ]
}

package.json

 

{
  "name": "lesson",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "bundle": "webpack"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "autoprefixer": "^9.6.1",
    "css-loader": "^1.0.1",
    "file-loader": "^2.0.0",
    "node-sass": "^4.10.0",
    "postcss-loader": "^3.0.0",
    "sass-loader": "^7.1.0",
    "style-loader": "^0.23.1",
    "url-loader": "^1.1.2",
    "webpack-cli": "^3.3.5"
  },
  "dependencies": {
    "webpack": "^4.25.1"
  }
}

index.html 

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div id='root'></div>
	<script src='./bundle.js'></script>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值