NodeJs使用webpack打包项目的方法详解


Posted in NodeJs onFebruary 28, 2022

Webpack

为何要用::友好支持模块化、代码混淆、处理js兼容、性能优化等…

WebPack的使用

第一步:初始化项目:npm init -y

第二步:新建 src/index.html

第三步:安装模块Jquery npm install jquery

第四步:测试隔行换色

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>隔行换色</title>
    <script src="./index.js"></script>
</head>
<body>
    <h1>web pack测试</h1>
    <!-- vscode快捷方式:ul>li{第$个li}*10 -->
    <ul>
        <li>第1个li</li>
        <li>第2个li</li>
        <li>第3个li</li>
        <li>第4个li</li>
        <li>第5个li</li>
        <li>第6个li</li>
        <li>第7个li</li>
        <li>第8个li</li>
        <li>第9个li</li>
        <li>第10个li</li>
    </ul>
</body>
</html>

index.js

import $ from 'jquery'
$(function(){
    $('li:odd').css('backgroundColor','green');//odd偶数
    $('li:even').css('backgroundColor','pink');//even奇数
})

运行报错:

NodeJs使用webpack打包项目的方法详解

这就是兼容性问题

使用webpack打包解决问题官网:https://www.webpackjs.com/

第五步:安装webpack(两个包)npm install webpack webpack-cli -D (开发模式)

第六步:新建webpack.config.js

/**
 * webpack  配置文件
 */
module.exports={
    //调试时使用development开发模式
    //打包时使用production生产模式
    mode : 'development'   
}

配置文件部分属性:

  • 默认打包入口:/src/index.js
  • 默认打包出口:/dist/main.js

可进行配置:

/**
 * webpack  配置文件
 */
const path=require('path');
module.exports={
    //调试时使用development开发模式
    //打包时使用production生产模式
    mode : 'development',
    entry:  path.join(__dirname,'./src/index.js'),  //__dirname表示当前目录当前路径
    output: {
        path: path.join(__dirname,'./dist'),
        filename:'bundle.js',
    },//出口

}

第七步:修改package.json(可有可无,运行方式不同)

package.json

"scripts": {
    "dev":  "webpack"
  },

第八步:执行打包npm run dev

目录下多出文件夹dist,终端含有’successfully’表示打包成功!

测试

首先修改index.html引入的js包

<!--<script src="./index.js"></script>-->❌
 <script src="../dist/main.js"></script>

运行:

NodeJs使用webpack打包项目的方法详解

表明webpack打包成功有效并且解决了兼容性问题!!!

WebPack打包CSS

传统都是用link引用

第一步:安装处理css的loader:npm i style-loader css-loader -D

根据实际需要安装对应的加载器

npm install less-loader -D (less加载器)

npm install sass-loader node-sass -D (sass加载器)

第二步:修改webpack.config.js:

/**
 * webpack  配置文件
 */
const path=require('path');
module.exports={
    //调试时使用development开发模式
    //打包时使用production生产模式
    mode : 'development',
    entry:  path.join(__dirname,'./src/index.js'),  //__dirname表示当前目录当前路径
    output: {
        path: path.join(__dirname,'./dist'),
        filename:'bundle.js',
    },//出口
    devServer:{
        static: './src'
    },
    //新增内容css
    module:{    //处理css
        rules:[ //(规范)约束
            {test:/\.css$/,use:['style-loader','css-loader']}//正则表达式拓展名.css
        ]
    }
}

第三步:引入CSS文件:`

css

#box{
    width: 200px;
    height: 100px;
    background-color: greenyellow;
}

index.js中加在上方(css的路径要填写正确)import './css/style.css'

index.html

<h1>CSS</h1>
    <div id="box">盒子</div>

第四步:运行测试:npm run dev

NodeJs使用webpack打包项目的方法详解

成功!!!

WebPack自动打包

由于每次更新代码都需要手动打包,这时我们要用上自动打包

①安装 npm install webpack-dev-server -D

②修改package.json(使得窗口自动打开并且自动打包)

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "webpack-dev-server --open --host 127.0.0.1 --port 9090"
  },

③修改webpack.config.js

devServer:{
        static: './src'
    }

④html引入bundle.js

打包后的文件都在根目录下

<script src="/bundle.js"></script>

④运行验证npm run dev原理:服务器上运行监听,所以需要访问服务器

直接访问即可,成功实现WebPack自动打包

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注三水点靠木的更多内容! 

NodeJs 相关文章推荐
nodejs的HTML分析利器node-jquery用法浅析
Nov 08 NodeJs
详解NodeJs支付宝移动支付签名及验签
Jan 06 NodeJs
NodeJS仿WebApi路由示例
Feb 28 NodeJs
async/await与promise(nodejs中的异步操作问题)
Mar 03 NodeJs
nodejs读写json文件的简单方法(必看)
Mar 09 NodeJs
nodejs使用express创建一个简单web应用
Mar 31 NodeJs
nodejs 图片预览和上传的示例代码
Sep 30 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
使用koa-log4管理nodeJs日志笔记的使用方法
Nov 30 NodeJs
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
Dec 06 NodeJs
nodejs基础之多进程实例详解
Dec 27 NodeJs
Nodejs在局域网配置https访问的实现方法
Oct 17 NodeJs
node快速搭建后台的实现步骤
nodejs利用readline提示输入内容实例代码
详解NodeJS模块化
NodeJs内存占用过高的排查实战记录
详解nodejs内置模块
May 06 #NodeJs
浅谈JS和Nodejs中的事件驱动
May 05 #NodeJs
ubuntu系统下使用pm2设置nodejs开机自启动的方法
May 12 #NodeJs
You might like
php遍历所有文件及文件夹的方法深入解析
2013/06/08 PHP
php实现删除空目录的方法
2015/03/16 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
Aster vs KG BO3 第二场2.18
2021/03/10 DOTA
Save a File Using a File Save Dialog Box
2007/06/18 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
jquery处理json对象
2014/11/03 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
Bootstrap每天必学之模态框(Modal)插件
2016/04/26 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
vue实现的下拉框功能示例
2019/01/29 Javascript
vue添加class样式实例讲解
2019/02/12 Javascript
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
2019/04/28 jQuery
微信小程序实现获取用户信息并存入数据库操作示例
2019/05/07 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
python通过http下载文件的方法详解
2019/07/26 Python
Flask框架学习笔记之模板操作实例详解
2019/08/15 Python
python制作英语翻译小工具代码实例
2019/09/09 Python
python 用户交互输入input的4种用法详解
2019/09/24 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
应届生高等护理求职信
2013/10/12 职场文书
高中自我鉴定范文
2013/11/03 职场文书
环保倡议书500字
2014/05/15 职场文书
艺术设计专业毕业生推荐信
2014/07/08 职场文书
2015年市场部工作总结
2015/04/30 职场文书
追悼会悼词大全
2015/06/23 职场文书
利用Python网络爬虫爬取各大音乐评论的代码
2021/04/13 Python
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android