一、下载与安装

//全局安装webpack (不推荐)
npm i webpack -g
npm i webpack
-cli -g //局部安装(推荐)
npm i webpack -D
npm i webpack-cli -
D npx webpack -v 查看webpack的版本号 注:也可以使用cnpm安装。

二、webpack.config.js文件的配置

//webpack的配置文件,文件名不能改!!!
//万一想改的话,就是 npx wenpack --config webpack.con.js 后面的是更改后的名称
const path=require('path') //引入此模块的目的就是,配置出口文件和入口文件的根路径;
module.exports={
//'development' or 'production' 开发环境配置,第一个是开发环境,production是生产环境!!
mode:"development",
      devtool:'cheap-eval-source-map',  //映射错误
    //配置默认的出口文件/入口文件
//首先找到入口文件;
entry:{ //entry入口文件,一个入口文件的话直接写,别写main对象;
main:path.join(__dirname,'./index.js')
},
//出口文件;
output:{
filename:'bundle.js', //出口文件的名,随意;
path:path.join(__dirname,'./dist')
},
//module--模块解析,webpack因为只认识js
module:{
rules:[{
//正则表达式匹配
test:/\.css$/,
use:[
"style-loader", //语法解析;
"css-loader" //解析文件依赖;因为可能会有多个css文件
]
},
{
test:/\.styl$/ , //styl文件的配置;cnpm i stylus-loader stylus -D
use:[
"style-loader",
"css-loader",
"stylus-loader" , //解析成正常css;
//注意顺序规律,从下而上;不能乱;
]
},
//图片解析;
{
test:/\.(jpg|png|svg|gif|jpeg)$/,
use:[
{
loader:"url-loader", //解析图片和解析文件;
//cnpm i url-loader file-loader -D
//url-loader基于file-loader -D
options:{ //图片的配置项
limit:10240
//用来控制当前的文件大小,如果当前文件大小超过所设置的文件大小,会把文件生成一个新的文件插入到dist下,如果比当前所设置的小,会放到打包出来的文件下,以bate64位的形式;
}
}
]
},
]
}
} 注意:css-loader style-loader 这些都是需要安装的

 三、ES6转ES5   (babel中文文档)设置----webpack

const path = require('path');
//引入HTML插件;
const HtmlWebPackplugin = require('html-webpack-plugin')
//下载:npm install --save-dev html-webpack-plugin
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
//下载:cnpm i clean-webpack-plugin -D 会随着webpack版本的改变,配置方法也会改变。
module.exports = {
mode: 'development',
devtool:'cheap-eval-source-map', //映射错误
entry: {
main: path.join(__dirname, 'index.js'),
},
output: {
filename: 'es6.js',
path: path.join(__dirname, './dist'),
},
//模块解析;
module: {
rules: [
{
test: /\.css$/,
use: [
"style-loader",
"css-loader"
]
},
  //es6转es5
//安装:npm install --save-dev babel-loader @babel/core 
     //npm install @babel/preset-env --save-dev
     //npm install --save @babel/polyfill  彻底转换成es5;还需单独在根目录文件下建一个 .babelrc 文件,见四配置,最后在入口文件(例如:index.js)还需引入 require("@babel/polyfill");  //哪里需要转就在哪里引入!!
            {
test: /\.js$/,
exclude: /node_modules/,
loader: "babel-loader"
}
]
},
//插件,是一个数组。
plugins: [
new HtmlWebPackplugin({
template: "./index.html" //依那个HTML文件为模板,就在此写那个文件
}),
new CleanWebpackPlugin()
//注意插件的先后顺序!!!不能变;
]
}

 四、 .babelrc 文件的配置

{
"presets": [["@babel/preset-env",{
"useBuiltIns": "usage" //在哪用就在那里转;
}]]
}
直接复制到该文件里面即可!

最新文章

  1. Eclipse:Dubug快捷键
  2. CCNA网络工程师学习进程(5)路由器和交换机的登录安全配置和vlan划分
  3. 【leetcode】Min Stack(easy)
  4. 同时使用python2和Python3
  5. C# 文件流相关操作
  6. Flex 仿Winxp左侧菜单
  7. C#程序重启自己
  8. uva11181Probability|Given
  9. nginx自定义模块编写-实时统计模块--转载
  10. POJ 1080 Human Gene Functions -- 动态规划(最长公共子序列)
  11. 利用C++ RAII技术自动回收堆内存
  12. 棋盘覆盖(大数阶乘,大数相除 + java)
  13. 3.一步一步学c#(三):对象和类型
  14. gcc编译参数之m32 m64
  15. win10 uwp 改变鼠标
  16. yum安装mysql
  17. asp.net mvc 使用NPOI插件导出excel
  18. linux下怎样批量更改文件后缀名
  19. Codeforces Round #341 (Div. 2) E - Wet Shark and Blocks
  20. 日常英语---六、Maplestory Illium

热门文章

  1. css 图片有间隔多个Img标签之间的间隙
  2. java web中的get和post(笔记)
  3. 四、IDS4建立Authorization server和Client
  4. C++ 虚函数和多重继承的内存布局初探
  5. Linux常用功能脚本
  6. django 如何重用app
  7. 【Dart学习】--Dart之正则表达式相关方法总结
  8. jdbc 事物 commit 和rollback方法
  9. toleft时设置TabSequence属性为tsReversetoright时设置TabSequence属性为tsStandard
  10. Eclipes 安装windowbuilding