Webpack
2021-03-29 01:26
标签:压缩 exclude url env 引用关系 web ash ade entry 按照文件的引用关系 对文件进行合并打包 一、基本使用 1、下载安装 2、在 package.json 写指令 "scripts": { 指令的配置 b、指定路径 指定路径:webpack 模式 入口路径 -o 出口路径 3、配置webpack.config.js文件 a、单入口,单出口 const path =require(‘path‘) b、多入口,多出口 const path = require(‘path‘) c、loader加载器(需要另外安装) const path = require(‘path‘) d、plugin插件(另外安装) const path = require(‘path‘) 二、自己搭建一个脚手架(简单版) 1. 开发者模式 npm run dev a.要在本地启动一个服务器 b.运行我们的react项目 c.使用jsx 语法 d.引入预处理语言 e.html 文件的移动 2. 生产者模式 npm run build 指令配置: webpack.config配置: Webpack 标签:压缩 exclude url env 引用关系 web ash ade entry 原文地址:https://www.cnblogs.com/imbacool/p/12611523.htmlwebpack
vue/cli vue 脚手架工具 基于webpack
create-react-app react 脚手架工具 基于webpack
自己用webpack 搭建脚手架工具
npm install webpack -D 项目安装(不推荐全局)
"dev":"webpack"
},
运行指令:npm run dev
a、指定模式mode(production或者development)
"dev": "webpack --mode=production",
当我们运行webpack指令的时候
默认的入口文件是 ./src/index.js
默认的出口文件是 ./dist/main.js
"dev_dir": "webpack --mode=production ./demo2/src/hehe.js -o ./demo2/output/main.js",
默认运行指令时和package.json同级
function resolve(dir){
return path.join(__dirname,dir)
}
// 只有一个入口文件 只有一个出口文件
module.exports={
mode:‘development‘,// 指定模式
entry:‘./demo3/src/hehe.js‘, // 指明入口文件
output:{ //出口相关的设置(绝对路径)
path:resolve(‘./demo3/output‘), //出口的文件夹
filename:‘xixi.js‘ // 出口的文件名
}
}
module.exports={
mode:"development",
entry:{
wy:‘./demo4/src/xixi.js‘,
wr:"./demo4/src/hehe.js"
},
output:{
path:path.join(__dirname,"./demo4/dist"),
filename:‘[name]_[hash].js‘
// name 代表的是入口的key值
// hash 唯一不重复的hash 如果打包文件没有发生改变 hash 不会改变 不会重复打包
}
}
module.exports={
mode:"production",
entry:"./demo5/src/index.js",
output:{
path:path.join(__dirname,‘./demo5/dist‘),
filename:"main.js"
},
module: {
rules:[
//加载图片
{
test: /\.(png|jpg|gif)$/i,
use: [
{
loader: ‘url-loader‘,
options: {
limit: 8192
}
}
]
},
// 加载css
{
test: /\.(css)$/i,
use: [
‘style-loader‘,
‘css-loader‘
]
},
]
}
}
const HtmlWebpackPlugin = require(‘html-webpack-plugin‘)
module.exports={
mode:"development",
entry:"./demo6/src/index.js",
output:{
path:path.join(__dirname,‘./demo6/dist‘),
filename:"main.js"
},
plugins:[
new HtmlWebpackPlugin({
title: ‘天气太好‘,
filename: ‘assets/admin.html‘, // 要导出的文件名和路径
template:‘./demo6/public/index.html‘ // 按照哪一个模板来生成html
})
]
}
"dev": " webpack-dev-server --config reactDemo/config/webpack.dev_config.js",
在指令中指定运行哪个webpack.config文件
devServer: {
contentBase: path.join(__dirname, ‘../dist‘), //将哪一个目录变成www目录
compress: true,
port: 8080
},
npm run dev
{
test: /\.(js|jsx)$/,
exclude: /(node_modules)/, //node_modules 不需要做处理的
use: {
loader: ‘babel-loader‘,
options: {
presets: [‘@babel/preset-env‘],
plugins: [‘@babel/plugin-transform-react-jsx‘]
}
}
},
{
test: /\.(less)$/,
exclude: /(node_modules)/, //node_modules 不需要做处理的
use:[
‘style-loader‘,
‘css-loader‘,
"less-loader"
]
},
new HtmlWebapckPlugin({
filename:‘index.html‘,
template:path.join(__dirname,‘../public/index.html‘)
})
编译打包 产生dist文件,能够进行代码压缩
"build":"webpack --config reactDemo/config/webpack.config.js"
mode:‘production‘,
还有对应的入口、出口、加载器和插件