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学习笔记之网络编程
Aug 03 NodeJs
Nodejs实现批量下载妹纸图
May 28 NodeJs
使用DNode实现php和nodejs之间通信的简单实例
Jul 06 NodeJs
NodeJs读取JSON文件格式化时的注意事项
Sep 25 NodeJs
NodeJS学习笔记之Module的简介
Mar 24 NodeJs
nodejs开发——express路由与中间件
Mar 24 NodeJs
深入nodejs中流(stream)的理解
Mar 27 NodeJs
Nodejs下使用gm圆形裁剪并合成图片的示例
Feb 22 NodeJs
nodejs 使用nodejs-websocket模块实现点对点实时通讯
Nov 28 NodeJs
NodeJs之word文件生成与解析的实现代码
Apr 01 NodeJs
nodejs实现获取本地文件夹下图片信息功能示例
Jun 22 NodeJs
nodejs实现百度舆情接口应用示例
Feb 07 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 无限分类的树类代码
2009/12/03 PHP
PHP中使用crypt()实现用户身份验证的代码
2012/09/05 PHP
基于PHP服务端图片生成缩略图的方法详解
2013/06/20 PHP
php利用curl抓取新浪微博内容示例
2014/04/27 PHP
PHP+MYSQL会员系统的开发实例教程
2014/08/23 PHP
PHP制作图形验证码代码分享
2014/10/23 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
JS getMonth()日期函数的值域是0-11
2010/02/15 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
js实现动态改变字体大小代码
2014/01/02 Javascript
javascript实现单击和双击并存的方法
2014/12/13 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
2015/12/30 Javascript
JavaScript函数柯里化详解
2016/04/29 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
nuxt.js写项目时增加错误提示页面操作
2020/11/05 Javascript
基于scrapy实现的简单蜘蛛采集程序
2015/04/17 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
浅谈python之新式类
2018/08/12 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
python 负数取模运算实例
2020/06/03 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
python统计mysql数据量变化并调用接口告警的示例代码
2020/09/21 Python
公司总经理工作职责管理办法
2014/02/28 职场文书
学前班学生评语
2014/12/29 职场文书
通讯稿范文
2015/07/22 职场文书