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教程之环境安装及运行
Nov 21 NodeJs
NodeJs——入门必看攻略
Jun 27 NodeJs
nodejs和php实现图片访问实时处理
Jan 05 NodeJs
Nodejs读取文件时相对路径的正确写法(使用fs模块)
Apr 27 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
nodeJS微信分享
Dec 20 NodeJs
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
Jan 05 NodeJs
nodejs使用http模块发送get与post请求的方法示例
Jan 08 NodeJs
nodejs更改项目端口号的方法
May 13 NodeJs
nodejs实现范围请求的实现代码
Oct 12 NodeJs
图解NodeJS实现登录注册功能
Sep 16 NodeJs
nodejs开发一个最简单的web服务器实例讲解
Jan 02 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 水平的题目
2007/05/30 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
PHP cURL初始化和执行方法入门级代码
2015/05/28 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
php使用pear_smtp发送邮件
2016/04/15 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
Jquery获取和修改img的src值的方法
2014/02/17 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
详解Vue 非父子组件通信方法(非Vuex)
2017/05/24 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
深入理解react 组件类型及使用场景
2019/03/07 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
判断js数据类型的函数实例详解
2019/05/23 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
Javascript实现鼠标移入方向感知
2020/06/24 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
Python实现竖排打印传单手机号码易撕条
2015/03/16 Python
python实现分页效果
2017/10/25 Python
基于django channel实现websocket的聊天室的方法示例
2019/04/11 Python
python中for循环把字符串或者字典添加到列表的方法
2019/07/20 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
Python try except finally资源回收的实现
2021/01/25 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
50个强大璀璨的CSS3/JS技术运用实例
2010/02/27 HTML / CSS
学生档案自我鉴定
2013/10/07 职场文书
园林设计师自荐信
2013/11/18 职场文书
2014年优质护理服务工作总结
2014/11/14 职场文书
信用卡工资证明范本
2015/06/19 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
如何写好开幕词?
2019/06/24 职场文书