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下DNS缓存问题浅析
Nov 16 NodeJs
实例分析nodejs模块xml2js解析xml过程中遇到的坑
Mar 18 NodeJs
NodeJS学习笔记之Module的简介
Mar 24 NodeJs
nodejs个人博客开发第一步 准备工作
Apr 12 NodeJs
nodejs制作爬虫实现批量下载图片
May 19 NodeJs
CentOS 安装NodeJS V8.0.0的方法
Jun 15 NodeJs
使用Nodejs连接mongodb数据库的实现代码
Aug 21 NodeJs
NodeJS爬虫实例之糗事百科
Dec 14 NodeJs
nodejs 最新版安装npm 的使用详解
Jan 18 NodeJs
NodeJS安装图文教程
Apr 19 NodeJs
nodejs读取并去重excel文件
Apr 22 NodeJs
NodeJS模块Buffer原理及使用方法解析
Nov 11 NodeJs
node快速搭建后台的实现步骤
nodejs利用readline提示输入内容实例代码
详解NodeJS模块化
NodeJs内存占用过高的排查实战记录
详解nodejs内置模块
May 06 #NodeJs
浅谈JS和Nodejs中的事件驱动
May 05 #NodeJs
ubuntu系统下使用pm2设置nodejs开机自启动的方法
May 12 #NodeJs
You might like
Zend的AutoLoad机制介绍
2012/09/27 PHP
详解php的socket通信
2015/08/11 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
PHP实现倒计时功能
2020/11/16 PHP
Javascript基础教程之定义和调用函数
2015/01/18 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
2015/08/22 Javascript
Express的路由详解
2015/12/10 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
JavaScript制作颜色反转小游戏
2016/09/25 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
IntersectionObserver实现图片懒加载的示例
2017/09/29 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
vue中的inject学习教程
2019/04/24 Javascript
打开电脑上的QQ的python代码
2013/02/10 Python
python实现多线程采集的2个代码例子
2014/07/07 Python
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
浅谈python下tiff图像的读取和保存方法
2018/12/04 Python
pandas分区间,算频率的实例
2019/07/04 Python
解决Python中pandas读取*.csv文件出现编码问题
2019/07/12 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
使用Python 自动生成 Word 文档的教程
2020/02/13 Python
Python操作Elasticsearch处理timeout超时
2020/07/17 Python
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
新西兰杂志订阅:isubscribe
2019/08/26 全球购物
我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
2014/03/30 面试题
中国梦演讲稿3分钟
2014/08/19 职场文书
培训师岗位职责
2015/02/14 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
会计试用期工作总结2015
2015/05/28 职场文书
物业保洁员管理制度
2015/08/05 职场文书
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle