webpack

安装本地的webpack4.0:

npm install webpack webpack-cli -D

1.npm init -y
初始化:
-y 的含义:yes的意思,在init的时候省去了敲回车的步骤,生成的默认的package.json

2.npm add webpack webpack-cli -D:
生成node_modules\package-lock.json

建src文件夹=》index.js
打包命令npx webpack
生成dist/main.js

模块化导出导入:
在dist里面新建index.html,script里导入当前文件中main.js

然后新建a.js 里面写module.exports=‘zfbx’;

在index.js里面写let str=require(’./a.js’);

console.log(str),

再执行npx webpack打包命令

新建webpack.config.js

配置如下:

改变webpackconfig.js名字:

(1)要想可以改变名字cmd里输入
npx webpack --config 《webpack.config.js新名字》

(2)同样可以再package.json里面配置scripts里面写
“build”:“webpack --config <webpack.config.js新名字>”,
但是执行命令变为
npm run build

(3)同样可以再package.json里面配置scripts里面写
“build”:"webpack ",
但是执行命令变为
npm run build – --config 《webpack.config.js新名字》

webpack开发服务器:

1.自动打包功能
安装webpack-dev-server 插件:

npm install webpack-dev-server
错误:npm add webpack-dev-server-D
然后执行 npx webpack-dev-server,生成一个localhost地址,配置webpack.config.js配置
devServer:{
port:8000, //端口设置
progress:true,
// 添加打包文件夹路径
contentBase:"./dist"
},
package.json里面配置:
“scripts”: {
“dev”: “webpack-dev-server --open”
},
运行命令npm run dev

当先执行npm run dev时通过访问localhost:8080 会默认访问根目录下的
index.html 文件, 若跟目录下没有index.html文件就会将当前项目目录展示在网页上。但是我们希望访问localhost:8080时 访问的dist文件夹下的文件,所以要在webpack.config.js中配置 devServer(开发服务器),同理有无index.html文件时看到的结果和上面一样,

安装:生成预览界面
1.npm install html-webpack-plugin --save -D

webpack.config.js里面配置plugings

2.let htmlWebpackPlugin = require(‘html-webpack-plugin’);
3. plugins: [ // 插件 数组 放所有webpack插件
new htmlWebpackPlugin({
template: ‘./src/index.html’,//指定模板
filename: ‘index.html’,//打包后的文件名 默认也是index.html
minify: {//压缩
removeAttributeQuotes: true,//去除html页面中的双引号
collapseWhitespace: true//显示在一行上
},
hash: true,//添加hash 是在index.html页面里面引入js时候给js添加hash 并不是index.html文件 名添加hash
}),
],

loader:

新建index.css在src里面,在index.js里面

require(’./index.css’)

安装css-loader:

1.npm install css-loader style-loader -D
2.module: { rules: [ { test: [/.css/],use: [‘style-loader’, ‘css-loader’], }, ] },
3.然后重新启动npm run dev

安装less-loader:

1.npm install less less-loader -D

2.module: { rules: [ { test: [/.less/],use: [‘style-loader’, ‘css-loader’,‘less-loader’]}, ] },
3.然后重新启动npm run dev

安装sass-loader:

1.npm install node-sass sass-loader -D
2. rules: [{
test: /.scss$/,
use: [{
loader: “style-loader” // 将 JS 字符串生成为 style 节点
}, {
loader: “css-loader” // 将 CSS 转化成 CommonJS 模块
}, {
loader: “sass-loader” // 将 Sass 编译成 CSS
}]
}]
3.然后重新启动npm run dev

抽离css样式插件:打包到一个main.css中去

1.npm install mini-css-extract-plugin -D

2.webpack.config:
(1)let MiniCssExtractPlugin = require(‘mini-css-extract-plugin’);//引入
(2)new MiniCssExtractPlugin({
filename: ‘main.css’,
}),//注册
(3)使用:
module: {
rules: [
{
test: [/.css/],
use: [MiniCssExtractPlugin.loader, ‘css-loader’],
},
{
test: [/.less/],
use: [MiniCssExtractPlugin.loader, ‘css-loader’,‘less-loader’]
},
]
},

css3打包后自动追加前缀插件:autoprefixer

1.npm install postcss-loader autoprefixer -D

2.新建一个 postcss.config.js 文件,输入:
module.exports = {
plugins: [
require(‘autoprefixer’)
]
}

3.webpack.config.js:
module.exports = {
module: {
rules: [
{
test: /.css$/,
use: [“style-loader”, “css-loader”, “postcss-loader”]
}
]
}
}

压缩css:

1.npm install optimize-css-assets-webpack-plugin -D
//用来对css文件进行压缩,从而减小js文件的大小,加速load速度。

2.npm install uglifyjs-webpack-plugin -D
//用来对js文件进行压缩,从而减小js文件的大小,加速load速度。
这两个必须一起使用

es6转化

1.安装

npm install @babel/core babel-loader @babel/preset-env -D

2…webpack:
{
test: /.js$/, use: {
loader: ‘babel-loader’, options: {
presets: [’@babel/preset-env’]
}
}
},

转化es7:

1.安装:
npm install @babel/plugin-proposal-class-properties -D

  1. {
    test: /.js$/, use: {
    loader: ‘babel-loader’, options: {
    presets: [’@babel/preset-env’],
    plugins: [’@babel/plugin-proposal-class-properties’]
    }
    }
    },

webpack 打包图片

1.安装
npm install url-loader file-loader -D

2.rules:
{
test: /.jpg|png|gif|bmp|ttf|eot|svg|woff|woff2$/,
use: ‘url-loader?limit=16940’
},

[插件3 CSS] optimize-css-assets-webpack-plugin

1.安装
npm install optimize-css-assets-webpack-plugin -D

这个插件可以接受下列配置(均为可选):

assetNameRegExp: 正则表达式,用于匹配需要优化或者压缩的资源名。默认值是 /.css$/g
cssProcessor: 用于压缩和优化CSS 的处理器,默认是 cssnano.这是一个函数,应该按照 cssnano.process 接口(接受一个CSS和options参数,返回一个Promise)
canPrint: {bool} 表示插件能够在console中打印信息,默认值是true

UglifyJsPlugin

UglifyJS Webpack Plugin插件用来缩小(压缩优化)js文件,至少需要Node v6.9.0和Webpack v4.0.0版本。

1.安装
npm install uglifyjs-webpack-plugin --save-dev

加入jquery:

先安装加载器expose-loader,用于将插件暴露到全局中供其他模块使用:
npm i expose-loader --save

安装JQuery:
npm install jquery --save
以上两个模块也是项目发布依赖的模块,因此安装参数选择–save。

1.第一种方法:在打包入口文件中直接require并用expose-loader暴露$到全局

打包入口文件./src/index.js中引入JQuery:

require(“expose-loader?$!jquery”);

在html文件中引入测试是否全局可用./dist/index.html:

2.第二种方法:在打包入口文件引入JQuery,在配置文件中暴露到全局

项目根目录创建配置文件./conf/webpack.dev.js:

const path = require(“path”);
module.exports = {
mode: “development”, //打包为开发模式
entry: “./src/index”, //入口文件
output: { //输出路径和文件名,使用path模块resolve方法将输出路径解析为绝对路径
path: path.resolve(__dirname, “…/dist”),
filename: “main.js”
},
module: {
rules: [
//暴露KaTeX parse error: Expected '}', got 'EOF' at end of input: … options: '
}]
}
]
}
}

入口文件中./src/index.js引入jquery:

require(“jquery”);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值