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+express+html5 实现拖拽上传
Aug 08 NodeJs
Nodejs实现的一个简单udp广播服务器、客户端
Sep 25 NodeJs
nodejs实现的一个简单聊天室功能分享
Dec 06 NodeJs
nodejs爬虫抓取数据之编码问题
Jul 03 NodeJs
使用nodejs下载风景壁纸
Feb 05 NodeJs
nodejs集成sqlite使用示例
Jun 05 NodeJs
使用nodeJs来安装less及编译less文件为css文件的方法
Nov 20 NodeJs
nodejs实现套接字服务功能详解
Jun 21 NodeJs
nodejs实现范围请求的实现代码
Oct 12 NodeJs
nodejs中实现用户注册路由功能
May 20 NodeJs
nodejs实现UDP组播示例方法
Nov 04 NodeJs
Nodejs封装类似express框架的路由实例详解
Jan 05 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 Squid中可缓存的动态网页设计
2008/09/17 PHP
非常好用的两个PHP函数 serialize()和unserialize()
2012/02/04 PHP
Linux环境下搭建php开发环境的操作步骤
2013/06/17 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
2019/05/05 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
JQuery 学习笔记 选择器之一
2009/07/23 Javascript
jQuery 前的按键判断代码
2010/03/19 Javascript
跟着JQuery API学Jquery 之二 属性
2010/04/09 Javascript
jQuery制作仿腾讯web qq用户体验桌面
2013/08/20 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
jQuery中replaceAll()方法用法实例
2015/01/16 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
2016/06/14 Javascript
jQuery纵向导航菜单效果实现方法
2016/12/19 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
Javascript和jquery在selenium的使用过程
2019/10/31 jQuery
如何在Vue项目中添加接口监听遮罩
2021/01/25 Vue.js
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
python中的错误处理
2016/04/10 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
Python3 实现爬取网站下所有URL方式
2020/01/16 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
2021/01/15 Python
中层干部竞争上岗演讲稿
2014/01/13 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
应聘编辑自荐信范文
2014/03/12 职场文书
2014公安机关纪律作风整顿思想汇报
2014/09/13 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
合作协议书格式范本
2016/03/21 职场文书
导游词之青岛崂山
2019/12/27 职场文书
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL
关于Python中*args和**kwargs的深入理解
2021/08/07 Python