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中exports与module.exports的区别详细介绍
Jan 14 NodeJs
轻松创建nodejs服务器(7):阻塞操作的实现
Dec 18 NodeJs
浅析nodejs实现Websocket的数据接收与发送
Nov 19 NodeJs
NodeJS仿WebApi路由示例
Feb 28 NodeJs
NodeJS基础API搭建服务器详细过程记录
Apr 01 NodeJs
深入理解nodejs中Express的中间件
May 19 NodeJs
详解Nodejs之静态资源处理
Jun 05 NodeJs
nodejs 图片预览和上传的示例代码
Sep 30 NodeJs
NodeJs实现定时任务的示例代码
Dec 05 NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 NodeJs
Nodejs封装类似express框架的路由实例详解
Jan 05 NodeJs
nodejs如何在package.json中设置多条启动命令
Mar 16 NodeJs
node快速搭建后台的实现步骤
nodejs利用readline提示输入内容实例代码
详解NodeJS模块化
NodeJs内存占用过高的排查实战记录
详解nodejs内置模块
May 06 #NodeJs
浅谈JS和Nodejs中的事件驱动
May 05 #NodeJs
ubuntu系统下使用pm2设置nodejs开机自启动的方法
May 12 #NodeJs
You might like
ThinkPHP模型详解
2015/07/27 PHP
PHP实现的简单缓存类
2015/07/29 PHP
使用PHP如何实现高效安全的ftp服务器(二)
2015/12/30 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
找到了一篇jQuery与Prototype并存的冲突的解决方法
2007/08/29 Javascript
浏览器解析js生成的html出现样式问题的解决方法
2012/04/16 Javascript
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
2013/04/24 Javascript
jQuery 获取浏览器所在的IP地址的小例子
2013/11/08 Javascript
控制文字内容的显示与隐藏示例
2014/06/11 Javascript
js 左右悬浮对联广告特效代码
2014/12/12 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
2016/11/05 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
2019/02/01 Javascript
使用python加密自己的密码
2015/08/04 Python
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
2016/07/02 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
基于python指定包的安装路径方法
2018/10/27 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
Hotels.com日本:国外和海外住宿,酒店预订
2019/12/13 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
俄罗斯商务邀请函
2014/01/26 职场文书
技能比赛获奖感言
2014/02/14 职场文书
化工操作工岗位职责
2014/04/29 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
2014年文秘工作总结
2014/11/25 职场文书
写给领导的感谢信
2015/01/22 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
Python使用DFA算法过滤内容敏感词
2022/04/22 Python