步骤一:
npm init
步骤二:
npm install -D clean-webpack-plugin css-loader extract-text-webpack-plugin html-webpack-plugin mini-css-extract-plugin style-loader webpack webpack-cli webpack-dev-server
步骤三:
npm install -S jquery
步骤四:
创建 webpack.config.js
// 直接path
const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin'); //
const CleanWebpackPlugin = require('clean-webpack-plugin'); // 清除旧文件
var HtmlWebpackPlugin = require('html-webpack-plugin'); // 页面热加载
var webpack = require('webpack');
module.exports = {
mode: 'development',
entry: './main.js', // 入口文件
output: { // 出口
path: path.resolve(__dirname, 'dist'),
filename: '[name].[hash].js' // 名称
},
devServer: { // webpack 本地服务
contentBase: path.join(__dirname, 'dist'),
compress: true,
port: 9000
},
module: {
rules: [
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: "css-loader"
})
}
]
},
plugins: [ // 插件集
new ExtractTextPlugin("[name].[hash].css"), // 输出css版本
new CleanWebpackPlugin(['dist']), // 清除dist文件夹下的内容
new HtmlWebpackPlugin({ // 自动生成html文件
template: 'index.html'
}),
new webpack.ProvidePlugin({ // 引入第三方插件(自动加载模块)
$: 'jquery',
jQuery: 'jquery'
}),
new webpack.DefinePlugin({ // 定义全局变量
'env': JSON.stringify('www://aaa/com')
})
],
optimization: {
splitChunks: {
filename: 'common.js',
chunks: 'all'
}
}
};
步骤五:
package.json
{
"name": "webpack_test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "webpack-dev-server --inline",
"build": "webpack"
},
"author": "",
"license": "ISC",
"devDependencies": {
"clean-webpack-plugin": "^0.1.19",
"css-loader": "^0.28.11",
"extract-text-webpack-plugin": "^3.0.2",
"html-webpack-plugin": "^3.2.0",
"mini-css-extract-plugin": "^0.4.0",
"style-loader": "^0.21.0",
"webpack": "^4.12.0",
"webpack-cli": "^3.0.8",
"webpack-dev-server": "^3.1.4"
},
"dependencies": {
"jquery": "^3.3.1"
}
}
步骤六:
项目目录
store/age.js
const age = 18;
module.exports = age;
store/name.js
const name = '小明';
module.exports = name;
main.js
// 引入 age.js
const age = require('./store/age.js');
// 引入 name.js
const name = require('./store/name.js');
import login from './style/common.css';
console.log(`${name}的年龄是${age}`);
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>React App</title>
</head>
<body>
<div>React App</div>
</body>
</html>
.