loader与plugin的区别
- loader是加载器,plugin是插件
- loader主要用来加载一个一个的文件,比如可以加载js文件,把js转译成低版本浏览器支持的js,也可以加载css文件,把css加载成页面上的style标签,也可以加载图片文件,对图片进行优化
- plugin用来加强webpack功能,比如有个插件叫HtmlWebpackPlugin,用来生成一个html文件,还有miniCssExtractPlugin,用来抽取css的代码生成一个css文件
引入SCSS
node-sass已经过时,改用dart-sass
css文件后缀改成.scss就是合法的scss文件, 用$声明变量
搜索:webpack scss loader
安装
yarn add sass-loader dart-sass --dev
添加配置
module.exports = {module: {rules: [{test: /\.s[ac]ss$/i,use: ['style-loader','css-loader',{loader: 'sass-loader',options: {// Prefer `dart-sass`implementation: require('dart-sass'),},},],},],},};
引入less
将css后缀改为less
语法用@声明变量
@color: red;body {background: @color;}
安装
yarn add less-loader less --dev
添加配置
module.exports = {...module: {rules: [{test: /\.less$/,use: [{loader: "style-loader" // creates style nodes from JS strings}, {loader: "css-loader" // translates CSS into CommonJS}, {loader: "less-loader" // compiles Less to CSS}]}]}};
或者
module.exports = {...module: {rules: [{test: /\.less$/,loader: ["style-loader","css-loader","less-loader"]}]}};
引入stylus
后缀为.styl
c = red;body {background: c;}
安装
yarn add stylus-loader stylus --dev
配置
{test: /\.styl$/,loader: ["style-loader","css-loader","stylus-loader"]}
file-loader引入图片
安装
yarn add file-loader --dev
添加配置
module.exports = {module: {rules: [{test: /\.(png|jpg|gif)$/,use: [{loader: 'file-loader',options: {}}]}]}}
js导入图片
import png from './1.png' // 将文件导入成路径const div = document.getElementById('app')div.innerHTML = `<img src="${png}">`
懒加载
不得不加载时才加载(按需加载)
新建一个lazy.js文件
export default function lasy(){console.log("我是一个懒加载模块")}
在另一个js文件里使用懒加载
懒加载会得到一个promise,成功时执行什么,失败时执行什么
const button = document.createElement('button')button.innerText = '懒加载'button.onclick = ()=>{const promise = import('./lazy.js')promise.then((module)=>{const fn = module.defaultfn()},()=>{})}div.appendChild(button)
上传到github
先yarn build
把源代码上传到master分支,排除dist和node_module文件夹
新建gh-pages分支
git branch gh-pages
切换到gh-pages分支
git checkout gh-pages
删除文件,只留下dist, node_module,.gitignore
将dist文件夹里的文件移到根目录
mv dist/* ./
提交到github: gst ga . gc gp报错
git push --set-upstream origin gh-pages
用脚本一键上传
返回master分支
git checkout master
新建deploy.sh
yarn build &&git checkout gh-pages &&rm -rf *.html *.js *.css *.png &&mv dist/* ./ &&rm -rf dist;git add . &&git commit -m "update" &&git push &&git checkout - # 回到上一个分支
在master执行
sh ./deploy.sh
上传到gitee
新建origin
git remote add gitee git@gitee.com:XG_GX/webpack-demo.git # 把origin改成了gitee
查看源
git remote -v
将gh-pages分支上传到gitee的master
git push gitee gh-pages:master
