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
抛弃Nginx使用nodejs做反向代理服务器
Jul 17 NodeJs
基于 Docker 开发 NodeJS 应用
Jul 30 NodeJs
详谈nodejs异步编程
Dec 04 NodeJs
Nodejs关于gzip/deflate压缩详解
Mar 04 NodeJs
nodejs个人博客开发第四步 数据模型
Apr 12 NodeJs
用Nodejs搭建服务器访问html、css、JS等静态资源文件
Apr 28 NodeJs
深入理解nodejs中Express的中间件
May 19 NodeJs
nodejs结合Socket.IO实现的即时通讯功能详解
Jan 12 NodeJs
深入理解nodejs搭建静态服务器(实现命令行)
Feb 05 NodeJs
NodeJs crypto加密制作token的实现代码
Nov 15 NodeJs
详解NodeJS模块化
Jun 15 NodeJs
node快速搭建后台的实现步骤
nodejs利用readline提示输入内容实例代码
详解NodeJS模块化
NodeJs内存占用过高的排查实战记录
详解nodejs内置模块
May 06 #NodeJs
浅谈JS和Nodejs中的事件驱动
May 05 #NodeJs
ubuntu系统下使用pm2设置nodejs开机自启动的方法
May 12 #NodeJs
You might like
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
PHP测试程序运行时间的类
2012/02/05 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
php文件上传的例子及参数详解
2013/12/12 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
PHP实现的mysql读写分离操作示例
2018/05/22 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
extjs之去除s.gif的影响
2010/12/25 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
2018/12/13 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
聊聊Vue 中 title 的动态修改问题
2019/06/11 Javascript
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
使用layui 的layedit定义自己的toolbar方法
2019/09/18 Javascript
JavaScript监听键盘事件代码实现
2020/06/03 Javascript
解决python 无法加载downsample模型的问题
2018/10/25 Python
python的pytest框架之命令行参数详解(上)
2019/06/27 Python
使用Python操作ArangoDB的方法步骤
2020/02/02 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
python判断变量是否为列表的方法
2020/09/17 Python
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
英国广泛的照明产品网站:Lights4living
2018/01/28 全球购物
安全员岗位职责
2013/11/11 职场文书
教师求职推荐信范文
2013/11/20 职场文书
初三化学教学反思
2014/01/23 职场文书
数控个人求职信范文
2014/02/03 职场文书
手术室护士节演讲稿
2014/08/27 职场文书
社区端午节活动总结
2015/02/11 职场文书
工地材料员岗位职责
2015/04/11 职场文书
高三生物教学反思
2016/02/22 职场文书
python爬虫框架feapde的使用简介
2021/04/20 Python