WebPack | 从新开始

接触WebPack,是在搭建vue项目时,vue-cli脚手架会自动搭建webpack环境,这让我对webpack没有一个很系统的认知,这里还是重新学习记录一下。


1.初始化WebPack

新建一个根目录webpack1

cd webpack1

//初始化,生成package.json依赖文件,-y可以省去配置
npm init -y  

//安装webpack (v4以上需要另外安装webpack-cli)
npm install webpack --save
npm install webpack-cli --save

// 创建webpack配置文件webpack.config.js
// 创建入口模板index.html
// 创建用于打包的js文件index.js
// 创建用于打包的css文件style.css

 


2. 打包Js文件

index.js:

import _ from 'lodash'
import './style/index.css'  

function createDomElement(){
    let dom = document.createElement('div');
    dom.innerHTML = _.join(['好','好学习','天天向上'],'');
   // dom.classList.add('box');
    return dom;
}
let divDom = createDomElement();

document.body.appendChild(divDom);

1. 在Index.js中编写一个添加dom的功能,在这里又引入了一个lodash库(是一个一致性、模块化、高性能的 JavaScript 实用工具库)。

2. 在webpack.config.js中添加配置

const path = require('path')
module.exports = {
    entry: './src/index.js',
    mode: 'development',
    output: {
        filename: "main.js",
        path: path.resolve(__dirname,'dist')
    },
}

3. 执行npx webpack对index.js进行打包,打包成一个dist文件,里面的main.js即为打包好的js文件

4. 在index.html中引入main.js

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>

    </body>
    <script src="./dist/main.js"></script>
</html>

4. 打开index.html, 出现了index.js中添加的dom,说明打包成功


2. 打包CSS文件

在打包好js后,dom成功创建,下面继续打包css,给字体变个色。

1. 首先需要安装css解析器

npm install css-loader --save

npm install style-loader --save

 2. 在webpack.config.js中添加配置

const path = require('path')
module.exports = {
    entry: './src/index.js',
    mode: 'development',
    output: {
        filename: "main.js",
        path: path.resolve(__dirname,'dist')
    },

    // 新增css解析器
    module: {
        // 处理规则
        rules: [
            {
                // webpack解析css
                test:/\.css$/,
                use:['style-loader','css-loader']
            }
        ]
    }
};

3. 编写style.css

.box{
    font-size: 3rem;
    color: red;
}

4. 在index.js中手动添加样式

import _ from 'lodash'
import './style/index.css'

function createDomElement(){
    let dom = document.createElement('div');
    dom.innerHTML = _.join(['好','好学习','天天向上'],'');
    dom.classList.add('box'); //添加样式
    return dom;
}
let divDom = createDomElement();

document.body.appendChild(divDom);

5. 再次打包,效果与定义的样式一致


 3. 打包Sass文件

npm i -D sass-loader node-sass

在webpack.config.js中改动规则,利用正则表达式去匹配scss/sass以及css文件,注意use中的加载器顺序是从右到左

    module: {
        // 处理规则
        rules: [
            {
                // webpack解析css/scss/sass
                test:/\.(sc|sa|c)ss$/,
                use:['style-loader','css-loader','sass-loader']
            },
        ]
    }

新建一个scss文件

// box.scss

$color: #c09;
.box{
  background-color: $color;
}

在index.js中引入

import _ from 'lodash'
import './style/index.css'
import './style/box.scss'

function createDomElement(){
    let dom = document.createElement('div');
    dom.innerHTML = _.join(['好','好学习','天天向上'],'');
   dom.classList.add('box');
    return dom;
}
let divDom = createDomElement();

document.body.appendChild(divDom);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值