webpack入门

需要安装的软件:
1.node.js
node.js自带npm
2.通过npm安装cnpm
3.切换npm到cnpm,安装webpack(cnpm国内镜像下载速度更快)

node.js JavaScript环境,可以不依赖后端直接前端部署服务
npm 下载工具
cnpm 下载工具(区别于npm仅仅为下载的包来自于国内,速度更快)
webpack 打包工具

作用:
1.打包,压缩多个静态文件为单个,减少二次请求,提高访问速度.
2.解析复杂的依赖

入门:
1.新建空项目,建文件和文件夹:

dist(用于打包输出的文件夹)
src
js
css
index.html
main.js(打包入口文件)

2.初始化npm,生成package.json配置文件:
npm init -y
3.html内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../dist/bundle.js"></script>
</head>
<body>
    <ul>
        <li>1</li>
        <li>2</li>
    </ul>
</body>
</html>

4.main.js内容:

import $ from 'jquery'

$(function () {
    $('li:odd').css('backgroundColor','black');
    $('li:even').css('backgroundColor',function () {
        return 'blue'
    });
})

此时,jquery本项目没有包,需要先在本项目局部安装webpack: cnpm install --save-dev webpack@3.6.0,
在安装jquery到本地局部,用 i,而不是用install: cnpm i jquery -s
5.此时就可以使用webpack进行打包了:
webpack 被打包入口文件及其路径(.\src\main.js) 打包输出的文件及其路径(.\dist\bundle.js)
此时打包每次都得输入入口和输出路径,可以根目录新建webpack.config.js配置:

const path = require('path');//设置path为根目录

module.exports = {
    entry: path.join(__dirname, './src/main.js'),//入口路径
    output: {//输出路径
        path: path.join(__dirname, './dist'),
        filename: 'bundle.js'
    }
}

配置好后,打包只需要输入: webpack
倒是每次都需要手动输入webpack,需要进阶为热部署更方便
6.热部署:
安装:cnpm i -D webpack-dev-server@2.9.3 (过高不支持3.6.0的webpack),
在配置文件package.json文件中添加脚本:

"scripts": {
 "start": "webpack-dev-server --inline --hot --open --port 8080 --contentBase src",//自动刷新浏览器,热部署(不重新打包整个而是局部更新,异步刷新加载文件,不会整体刷新浏览器),自动打开浏览器,端口8080,启动后访问的路径
 }

输入命令: npm run start
会看到编译成功的提示,但是修改js后不会更新效果,bundle.js内的代码也没有改变.
原因:
热部署输出的bundle.js打包好的文件和dist文件夹中的并不是同一个文件,热部署是打包文件到内存中,访问localhost:8080/bundle.js可以找到此文件.
解决:
把index.html引入的…/dist/bundle.js改成/bundle.js,热部署成功!
7.把首页也设置部署到内存中,自动引入打包好的js,提高访问速度.
安装: cnpm i -D html-webpack-plugin
配置webpack.config.js:

const htmlWebpackPlugn = require('html-webpack-plugin');
...
 plugins: [
        new htmlWebpackPlugn({//页面生成到内存中
            template: path.join(__dirname, './src/index.html'),
            filename: 'index.html' //指定内存中生成页面名称
        })
    ],

8.css静态文件也实现自动打包
安装: cnpm i -D style-loader css-loader
在main.js中引入css文件:

import './css/index.css' //css格式本来是不能被支持识别的,安装第三方模块的编译插件才能识别

在webpack.config.js中配置:

   module: {
        rules: [
            {test: /\.css$/, use: ['style-loader', 'css-loader']}//loader执行顺序从右到左
        ]
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值