39,084
社区成员
发帖
与我相关
我的任务
分享
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>webpack学习</title>
<!-- 引入打包输出的文件-->
<script src="../dist/main.js"></script>
</head>
<body>
<!-- 创建一个容器,将来渲染虚拟dom会放到容器内显示 -->
<div id="app"></div>
</body>
</html>
module.exports={
mode:"development"; //也可以为"production"
}
module.exports = {
mode : 'production', //development是开发环境(不压缩代码) production是产品环境(压缩代码)
entry : './src/main.js'
}
"dev":"webpack-dev-server"
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>webpack学习</title>
<!-- 引入打包输出的文件-->
<script src="./main.js"></script>
</head>
<body>
<!-- 创建一个容器,将来渲染虚拟dom会放到容器内显示 -->
<div id="app"></div>
</body>
</html>
"dev":"webpack-dev-server --open(自动打开浏览器) --port(指定端口号) --hot(热更新) --progress(打包进度) --compress(压缩) --host(指定域名)"
const path = require("path");//路径
const HtmlPluginWebpack = require("html-webpack-plugin");
const HtmlPlugin = new HtmlPluginWebpack({
template : path.join(__dirname,"./src/index.html"),
filename : 'index.html' ,//内存中生存的首页文件
})
module.exports={
mode : 'production', //development是开发环境(不压缩代码) production是产品环境(压缩代码)
plugins: [
htmlPlugin
]
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>webpack学习</title>
</head>
<body>
<!-- 创建一个容器,将来渲染虚拟dom会放到容器内显示 -->
<div id="app"></div>
</body>
</html>
webpack可以自动引用cnpm i babel-loader @babel/core @babel/preset-env @babel/preset-react @babel/preset-stage-0 @babel/plugin-transform-runtime -D @babel/plugin-proposal-class-properties
{
"presets": ["@babel/preset-env", "@babel/preset-react"],
"plugins":["@babel/plugin-transform-runtime","@babel/plugin-proposal-class-properties"]
}
module.exports={
mode : 'production', //development是开发环境(不压缩代码) production是产品环境(压缩代码)
plugins: [
htmlPlugin
],
module: {//所有第三方模块的配置规则
rules : [ //第三方匹配规则
{test : /\.js|jsx$/,use:'babel-loader',exclude:/node_modules/},//一定要添加exclude排除项
]
}
cnpm i style-loader css-loader -D
cnpm i sass-loader node-sass -D
cnpm i less less-loader -D
{test : /\.css$/,use:['style-loader','css-loader']},//打包处理css样式的第三方loader
{test:/\.scss$/,use:['style-loader','css-loader','sass-loader']}, //scss样式文件解析
{test:/\.less$/,use:['style-loader','css-loader','less-loader']}, //less样式文件解析
cnpm i file-loader url-loader json-loader -D
{test : /\.jpg|png|gif|bmp$/,use:'file-loader'}, //打包处理图片样式的文件
{test:/\.ttf|woff|woff2|eot|svg|otf$/,use:'url-loader'},//打包处理字体文件得到loader
{test:/\.json$/,use:'json-loader'},//json文件解析
resolve: {
extensions : ['.js','.jsx','.json'] , //表示这几个类型的文件可省略后缀
alias : {
'@' : path.join(__dirname,'./src'), //用@表示项目根目录中的src这层根路径
}
},
cnpm babel-plugin-import -D //使用 babel-plugin-import 来进行按需加载
"plugins":["@babel/plugin-transform-runtime","@babel/plugin-proposal-class-properties",
["import", { "libraryName": "antd","libraryDirectory": "es", "style": true }]],
{test:/\.less$/,use:[{loader:'style-loader'},{loader:'css-loader'},{loader:'less-loader',
options: {
modifyVars: {
'primary-color': '#1DA57A',
// 'link-color': '#1DA57A',
// 'border-radius-base': '2px',
},
javascriptEnabled: true,
}}]},//less样式文件解析
"compact": false
performance: {
hints:false
},