webpack 5.x 示例

操作步骤
1.npm init -y
2.npm install webpack webpack-cli --save-dev
3.npm install --save lodash
4.npm install --save-dev style-loader css-loader
5.npm install --save-dev webpack-merge

目录
目录

webpack.common.js

const path = require('path');

const HtmlWebpackPlugin = require('html-webpack-plugin');


module.exports = {
	entry: {
		app: './src/index.js',
	},

	plugins: [
		new HtmlWebpackPlugin({
			title: 'Production',
		}),
	],

	output: {
		filename: '[name].bundle.js',
		path: path.resolve(__dirname, 'dist'),
		clean: true,
	},

	module: {
		rules: [{
				test: /\.css$/,
				use: ['style-loader', 'css-loader'],
			},
			{
				test: /\.(png|svg|jpg|jpeg|gif)$/i,
				type: 'asset/resource',
			},
		],
	},
};

webpack.dev.js

const {
	merge
} = require('webpack-merge');

const common = require('./webpack.common.js');

module.exports = merge(common, {
	mode: 'development',
	devtool: 'inline-source-map',
	devServer: {
		static: './dist',
	},
});

webpack.prod.js

const {
	merge
} = require('webpack-merge');

const common = require('./webpack.common.js');

module.exports = merge(common, {
	mode: 'production',
});

index.js

import _ from 'lodash';
import './style.css';
import Icon from './logo.png';

function component() {
  const element = document.createElement('div');

  // lodash 在当前 script 中使用 import 引入
  element.innerHTML = _.join(['Hello', 'webpack'], ' ');
  element.classList.add('hello');

  // 将图像添加到我们已经存在的 div 中。
  const myIcon = new Image();
  myIcon.src = Icon;
  // myIcon.src = './logo.png';
  element.appendChild(myIcon);

  return element;
}

document.body.appendChild(component());

function test_fun() {
  var test = document.createElement('div');

  test.innerHTML = _.join('test demo', '');
  test.classList.add('hello2');

  return test;
}

document.body.appendChild(test_fun());

style.css

.hello {
  color: red;
  background: url(./logo.png);
  background-size: auto 100%;
  background-repeat: no-repeat;
  background-position: center;
}

package.json文件需要添加(添加到scripts下)

"start": "webpack serve --open --config webpack.dev.js",
"build": "webpack --config webpack.prod.js"

package.json添加之后

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "webpack serve --open --config webpack.dev.js",
    "build": "webpack --config webpack.prod.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "css-loader": "^6.4.0",
    "html-webpack-plugin": "^5.3.2",
    "style-loader": "^3.3.0",
    "webpack": "^5.58.1",
    "webpack-cli": "^4.9.0",
    "webpack-dev-server": "^4.3.1",
    "webpack-merge": "^5.8.0"
  },
  "dependencies": {
    "lodash": "^4.17.21"
  }
}

效果效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值