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全局安装和本地安装的不同之处
Jul 04 NodeJs
NodeJS和BootStrap分页效果的实现代码
Nov 07 NodeJs
Nodejs基于LRU算法实现的缓存处理操作示例
Mar 17 NodeJs
NodeJS实现视频转码的示例代码
Nov 18 NodeJs
使用nodejs+express实现简单的文件上传功能
Dec 27 NodeJs
nodejs+mongodb aggregate级联查询操作示例
Mar 17 NodeJs
修改Nodejs内置的npm默认配置路径方法
May 13 NodeJs
详解Nodejs mongoose
Jun 10 NodeJs
Nodejs异步回调之异常处理实例分析
Jun 22 NodeJs
typescript nodejs 依赖注入实现方法代码详解
Jul 21 NodeJs
NodeJS有难度的面试题(能答对几个)
Oct 09 NodeJs
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
May 30 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控制器调度使用示例
2014/02/24 PHP
php分页示例分享
2014/04/30 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
thinkphp5使用无限极分类
2019/02/18 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
简单的js分页脚本
2009/05/21 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
window.onload使用指南
2015/09/13 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
JavaScript计算器网页版实现代码分享
2016/07/15 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
一篇不错的Python入门教程
2007/02/08 Python
python任务调度实例分析
2015/05/19 Python
PYTHON压平嵌套列表的简单实现
2016/06/08 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
TensorFlow实现随机训练和批量训练的方法
2018/04/28 Python
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
Manduka官网:瑜伽垫、瑜伽毛巾和服装
2018/07/02 全球购物
会计电算化应届生求职信
2013/11/03 职场文书
国税会议欢迎词
2014/01/16 职场文书
税务干部鉴定材料
2014/02/11 职场文书
公开服务承诺制度
2014/03/26 职场文书
马智宇结婚主持词
2014/04/01 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
公务员考察材料
2014/12/23 职场文书
会计简历自我评价
2015/03/10 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
react如何快速设置文件路径别名
2021/04/28 Javascript