第三节:Node.js 之 Webpack 打包

这篇具有很好参考价值的文章主要介绍了第三节:Node.js 之 Webpack 打包。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

官网网址:https://webpack.docschina.org/
减少文件数量,缩减代码体积,提高浏览器打开速度。
用于分析、并打包代码。支持所有类型文件的打包,其本质是一个第三方模块包。

配置环境

  1. 初始化包环境
yarn init
  1. 安装依赖包
yarn add webpack webpack-cli -D
  1. 配置package.json 的 scripts(自定义命令)
"scripts": {
    "build": "webpack"
}

打包文件

在根目录下新建 src 文件夹,所有要打包的文件都要放在 src 文件夹下。
在 src 文件夹下,新建 add 文件夹,并在其下面新建要打包的 add.js 文件。

// src/add/add.js
function add (a, b) {
    return a + b;
}

// 导出
module.exports = {
    add,
}

在 add 的同级目录下,新建 sum 文件夹,并在其下面新建要打包的 sum.js 文件。

// src/sum.sum.js
function sum (arr) {
    let sum = 0;
    for (let i = 0; i < arr.length; i++) {
        sum += arr[i];
    }
    return sum;
}

// 导出
module.exports = {
    sum,
}

在 src 下新建 index.js 入口文件(默认入口文件为 src/index.js)

// src/index.js

// 导入
let add = require('./add/add');
let sum = require('./sum/sum');

// 引用
console.log(add(10, 20));	// 30

打包命令

打包后,会在根目录生成 dist 目录,并生成 main.js 出口文件(main.js 就是打包会后的文件)。

yarn build

执行流程

所有要被打包的资源都要跟入口产生直接 / 间接的引用关系。

webpack打包nodejs后端代码,全栈开发学习日记,# 第四章:Node.js,webpack,node.js,javascript

package.json 配置文件

{
   "scripts": {
      "build": "webpack",		// 自定义打包命令
      "server": "webpack server"	// webpack开发服务器
   },
}

启动服务后,自动打包文件。不需要每次执行 yarn build 重新进行打包。

# 安装依赖包
yarn add webpack-dev-server -D

# 启动服务器
yarn serve

webpack.config.js 配置文件

在 src 同级目录下新建 webpack.config.js 配置文件。

配置端口号

devServer: {
    port: 3000
}

mode:配置当前环境

  • 开发环境:development
  • 生产环境:production

entry:入口文件

要打包的文件。

output:出口文件

打包后生成的文件。

plugins:配置插件

  • HtmlWebpackPlugin
# 安装
yarn add html-webpack-plugin -D
// 配置
new HtmlWebpackPlugin({
	template: './public/index.html'
})

module:配置 loader

  1. rules:配置规则
    • 打包 css 文件

css-loader 将css文件一起打包到 js 中
style-loader 将 css 插入到DOM (style标签) 上

  • 打包 img 图片

小于8KB,文件转base64打包在js中。大于8KB,自动命名输出到dist下。

{
  test: /\.(png|jpg|jpeg|gif)$/i,
    type: 'asset'
}
  • 打包 less 文件
# 安装依赖包
yarn add less less-loader -D
  • 配置文件

对 js 语法进行降级处理,兼容低版本。

# 安装依赖包
yarn add babel-loader @babel/core
module.exports = {
    // 配置端口号
    devServer: {
        port: 3000
    }
    // 配置开发环境还是生产环境
    mode: 'development',
    // 自定义入口文件
    entry: '/src/main.js',
    // 自定义出口文件
    output: {
        pash: pash.json(_dirname, 'dist');
        filename: 'bundle.js'
    },
    // 配置插件
    plugins: [
        new HtmlWebpackPlugin({
            template: './public/index.html'
        })
    ],
    // 配置 loader
    module: {
        // 配置规则
        rules: [
            // loader 配置 - 打包 css 文件
            {
                test: /\.css$/i,
                // css-loader 将css文件一起打包到js中
                // style-loader 将css插入到DOM(style标签)上
                use: ['style-loader', 'css-loader']
            },
            // loader 配置 - 打包 img 图片
            {
                test: /\.(png|jpg|jpeg|gif)$/i,
                type: 'asset'
            },
            // less 配置 - 打包 less 文件
            {
                test: /\.less$/,
                use: ["style-loader", "css-loader", "less-loader"]
            },
            // 配置 字体图标
            {
                test: /\.(eot|svg|ttf|woff|woff2)$/,
                type: 'asset/resource',
                generator: {
                    filename: 'font/[name].[hash:6][ext]'
                }
            },
            // 对 js 语法降级,适配低版本
            {
                test: '/\.js$/',
                exclude: /(node_modules|bower_components)/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['@babel/preset-env']
                    }
                }
            }
        ]
    }
}

ES6 模块化打包

方式一(推荐)

// 入口文件:
export const 变量名 = function () {}
// 出口文件
import {变量名} from '入口文件路径'

入口文件 add.js(导出)

export const add = function (a, b) {
    return a + b;
}

出口文件 index.js(导入)

import {add} from './add/add'

方式二

// 入口文件:
const 变量名 = function () {}
export default 变量名;
// 出口文件
import 变量名 from '入口文件路径'

入口文件 add.js(导出)

const add = function (a, b) {
    return a + b;
}

export default add;

出口文件 index.js(导入)文章来源地址https://www.toymoban.com/news/detail-614944.html

import add from './add/add'

到了这里,关于第三节:Node.js 之 Webpack 打包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Day31:安全开发-JS应用&WebPack打包器&第三方库JQuery&安装使用&安全检测

    目录 打包器-WebPack-使用安全 第三方库-JQuery-使用安全 思维导图 JS知识点: 功能:登录验证,文件操作, SQL 操作,云应用接入,框架开发,打包器使用等 技术:原生开发, DOM ,常见库使用,框架开发( Vue , NodeJS ),打包器 ( Webpack ) 等 安全:原生开发安全, NodeJS 安全,

    2024年03月14日
    浏览(53)
  • 【python】webpack是什么,如何逆向出webpack打包的js代码?

    ✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN新星创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开

    2024年03月25日
    浏览(59)
  • Webpack打包简单的js文件

    初始化一个新的npm 步骤一: 初始化npm项目,创建一个package.json文件 步骤二: 添加打包脚本:在 scripts 部分添加一个命令来运行webpack 步骤三: 安装Webpack 步骤四: 创建一个简单的Javascript文件,比如 src/index.js 步骤五: 配置Webpack,创建一个名为 webpack.config.js 的文件 步骤六

    2024年01月24日
    浏览(36)
  • Node.js与Webpack笔记(二)

    上一篇:Node.js与Webpack笔记(一)-CSDN博客 1.Webpack简介以及体验 webpack是一个静态模块打包工具,从入口构建依赖图,打包有关的模块,最后用于展示你的内容 静态模块:编写代码过程中,html,css,js,图片等固定内容的文件 打包过程,注意:只有和入口有直接/间接引入关系

    2024年03月10日
    浏览(83)
  • Webpack打包图片-js-vue

    为了演示我们项目中可以 加载图片 ,我们需要在项目中使用图片,比较常见的使用图片的方式是两种: img 元素,设置 src 属性; 其他元素(比如div),设置 background-image 的css属性; 我们当前使用的webpack版本是webpack5: 在webpack5之前,加载这些资源我们需要使用一些 loader

    2024年02月06日
    浏览(39)
  • Node.JS学习 | Babel | webpack | ES6

    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Node.JS能够在服务器端运行JavaScript的开放源代码、跨平台运行环境;Node.js采用Google开发的V8运行代码,使用事件驱动、非阻塞IO和异步输入输出模型等技术来提高性能,可优化应用程序的传输量和规模 let有效避免var的变

    2024年02月07日
    浏览(44)
  • Webpack打包arcgis js api 3.x纯html+JS+CSS项目

    小项目。纯HTML+JS+CSS已经部署上线,但是没有做混淆加密,需要进行混淆加密 目前代码里面需要混淆加密的有main.js,其他的不用混淆加密。所以只需要对main.js进行混淆加密就可,但是要保证混淆加密之后能够访问方法。 由于目前在index.html的script使用import导入main.js里面的方

    2024年02月11日
    浏览(62)
  • 十五、Webpack打包图片-js-Vue、Label命令、resolve模块解析

    为了演示我们项目中可以加载图片,我们需要在项目中使用图片,比较常见的使用图片的方式是两种: img元素,设置src属性; 其他元素(比如div),设置background-image的css属性; 这个时候我们打包会报错: 我们当前使用的webpack版本是webpack5: 在webpack5之前,加载这些资源我

    2024年02月09日
    浏览(39)
  • node.js下载安装和报错大全(express、淘宝镜像、webpack、Vue)

    目录 一、概述 二、操作步骤 (一)下载node.js (二) 安装node.js (三)查看环境变量 (四)查看版本信息 (五)新建全局下载包和缓存包位置 (六)配置环境变量 (七)安装express(内嵌http模块) 安装成功 安装失败 解决办法一(最好的办法)  解决办法二(其次) (八

    2024年02月01日
    浏览(77)
  • web逆向笔记:js逆向案例四 QQ音乐 sign值(webpack打包代码如何扣取)

    一、webpack介绍: ​ Webpack 是一个模块打包工具,主要用于 JavaScript 应用程序。它可以将许多模块打包成一个或多个 bundle,从而优化加载速度和减少加载时间。Webpack 可以处理各种资源,包括 JavaScript、CSS、图片、字体等,并且可以将其转换为浏览器可以理解的格式。 Webpack

    2024年04月25日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包