使用webpack打包ts代码

news2025/1/16 16:04:11

通常情况下,实际开发中需要使用构建工具对代码进行打包,TS也可以结合构建工具进行使用,以webpack为例,介绍如何结合构建工具使用TS。

基本功能实现步骤:

  • 项目初始化,生成package.json:npm init -y

  • 下载构建工具

安装使用webpack时需要的依赖:cnpm i -D webpack webpack-cli typescript ts-loader

  • 新建webpack的配置文件webpack.config.js

webpack.config.js:

const path = require("path")  //引入一个包,node.js的一个模块,主要用来帮助拼接路径

// webpack中所有的配置信息都应该写再module.exports中

module.exports = {

        //指定入口文件,等于程序中的主文件

        entry:"./src/index.js" ,

        //指定打包完成的文件所在的目录

        output:{ 

                //指定打包后的文件目录

                path:path.resolve(__dirname,"dist"),  // 直接在原有path后面拼接

                //打包后的文件的名称

                filename:"bundle.js", 

         },

        // 指定webpack打包时要使用的模块

        module:{

                //指定loader加载的规则

                rules:[

                                {

                                        // test 指定规则生效的文件

                                       test:/\.ts$/, // 表示匹配所有的以 .ts 结尾的文件,即所有的ts文件

                                        // use指定要使用的loader

                                       use:"ts-loader", // use指定要使用的loader

                                        //excludes指定要排除的文件夹

                                        excludes:/node-modules/, // 所有文件路径中有node-modules的文件都排除, 即排除node-modules下所有文件。

                                }

                ]

        }

}

  • 新建ts的配置文件tsconfig.json

tsconfig.json:

{

        // 简单写一下,内容可更改

        "compilerOptions":{

                "modules":"ES2015",

                "target":"ES2015",

                "script":true,

        }

}

  • 在package.json文件中添加属性:"build":"webpack",可以通过build命令直接执行webpack

package.json:

  • 在终端npm run build来执行打包。

打包成功:

webpack在ts中的插件

生成html文件插件:html-webpack-plugin

安装插件:cnpm i -D html-webpack-plugin

有助于生成html文件,命令完成后,在package.json中多出配置选项

需要对webpack.config.js进行配置

首先,需要引入插件

const path = require("path") 

//引入html插件

const HTMLWebpackPlugin = require( "html-webpack-plugin" )

module.exports = {

        entry:"./src/index.js" ,

        output:{ 

                path:path.resolve(__dirname,"dist"), 

                filename:"bundle.js", 

         },

        module:{

                rules:[

                                {

                                       test:/\.ts$/,

                                       use:"ts-loader",

                                        excludes:/node-modules/,

                                }

                ]

        },

        //配置webpack插件

        plugin:{

                new HTMLWebpackPlugin(), // 效果自动生成html文件,并且自动引入相关资源

                // 也可以对生成的html进行自定义

                 new HTMLWebpackPlugin(options:{

                        title:"这是一个自定义的title",

                } ),

                // 也可以根据自定义html模板生成html文件

 

                 new HTMLWebpackPlugin(options:{

                        template:"./src/index.html", //html模板文件位置

                } ),

        }

}

webpack开发服务器插件:webpack-dev-server

安装插件:cnpm i -D webpack-dev-server

webpack开发的服务器插件,相当于在项目中安装了一个内置的服务器,项目可以直接在这个服务器运行,这个服务器和webpack是直接相关联的,可以根据项目的改变自动刷新。

手动添加package.json配置文件内容:"start":"webpack serve --open chrome.exe"\

表示启用webpack服务器并且用chrome打开网页

终端:npm start 启动服务器,并且能自动打开网页

清除dist目录插件:clean-webpack-plugin

安装插件:cnmp i -D clean-webpack-plugin

每次编译前,将dict目标目录先清空再把新文件放进去,确保现在目标文件夹下的文件都是最新的,避免有旧文件出现的情况。

const path = require("path") 

const HTMLWebpackPlugin = require( "html-webpack-plugin" )

//引入clean插件

const {CleanWebpackPlugin }= require( "clean-webpack-plugin" )

module.exports = {

        entry:"./src/index.js" ,

        output:{ 

                path:path.resolve(__dirname,"dist"), 

                filename:"bundle.js", 

         },

        module:{

                rules:[

                                {

                                       test:/\.ts$/,

                                       use:"ts-loader",

                                        excludes:/node-modules/,

                                }

                ]

        },

        //配置webpack插件

        plugin:{

                new HTMLWebpackPlugin(),

                new CleanWebpackPlugin(),

        },

        //用来设置引用模块

        resolve:{ //必需的

                extensions:['.ts','.js']  //凡是以.ts、.js结尾的文件都可以作为模块使用

        }

}

Babel

使用流程

下载安装

安装babel:cnpm i -D @babel/core @babel/preset-env babel-loader core-js

@babel/preset-env预置环境,必要的;core-js模拟js运行环境的代码,提高兼容性

package.json自动生成属性:

修改配置文件

配置依赖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1513507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能化工厂大屏监控

通过采集和整合工厂各个环节的数据,包括设备状态、生产进度、质量指标、能源消耗等,并将这些数据以图表、动画、报表等形式展示在大屏上。 智能化工厂大屏监控可以提供以下优势: 实时监控:通过大屏幕展示工厂各项数据&#xff0c…

【安装教程】在Ubuntu上安装MySQL和InfluxDB

一、安装MySQL 官方文档 MySQL :: MySQL Installation Guide :: 7.1 Installing MySQL on Linux Using the MySQL Yum Repositoryhttps://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/linux-installation-yum-repo.html 1、进入下列网站,选择合适版本的…

【CSP】2021-12-2 序列查询新解 分段处理 用乘法代替加法减少时间复杂度(思想是离散化)

2021-12-2 序列查询新解 分段处理 用乘法代替加法减少时间复杂度(思想是离散化)2021-12-2 序列查询新解 分段处理 用乘法代替加法减少时间复杂度(思想是离散化) 2021-12-2 序列查询新解 分段处理 用乘法代替加法减少时间复杂度&am…

1435A/B-V信号发生器

1435A/B-V 信号发生器 高兼容性 高输出功率 高灵敏度 1435-V系列信号发生器是一款性能优良的矢量信号发生器,频率范围覆盖9kHz~6GHz,200MHz内部调制带宽和齐全的数字调制样式,可满足各种宽带数字调制信号的模拟需求。 PART.0…

2024年3月份实时获取地图边界数据方法,省市区县街道多级联动【附实时geoJson数据下载】

首先,来看下效果图 在线体验地址:https://geojson.hxkj.vip,并提供实时geoJson数据文件下载 可下载的数据包含省级geojson行政边界数据、市级geojson行政边界数据、区/县级geojson行政边界数据、省市区县街道行政编码四级联动数据&#xff0…

1.1计算机系统构成及硬件系统知识(上)

基础知识部分----chap01 主要议题: 数制转换:一般会涉及存取的计算;ip地址中变长子网掩码的计算题;(难度较大) 数的表示:二进制、十六进制; 计算机的组成:考察的较为深入…

MySQL用法---MySQL Workbench创建数据库和表

1. 连接数据库 打开软件,点击左下角卡片,输入设置的数据库密码,勾选单选框 2. 了解主页面的组成部分 3. 创建数据库 先点击工具栏的创建按钮 再输入数据库名称 点击 Apply 创建 4. 创建数据表 展开数据库,在Tables上右键&…

数安委新栏目-微型发布会!首期推荐-天空卫士数据安全扫描仪(DSS)

新年伊始,CCIA数安委推出新栏目-微型发布会。天空卫士数据安全扫描仪(DSS)作为首期推荐产品,亮相新栏目。 点击可“阅读原文”:《微型发布会/数据安全扫描仪(DSS)-2024年第1期》。 为鼓励委员单…

支付模块-基于消息队列发送支付通知消息

消息队列发送支付通知消息 需求分析 订单服务作为通用服务,在订单支付成功后需要将支付结果异步通知给其他对接的微服务,微服务收到支付结果根据订单的类型去更新自己的业务数据 技术方案 使用消息队列进行异步通知需要保证消息的可靠性即生产端将消息…

git commit --amend

git commit --amend 1. 修改已经输入的commit 1. 修改已经输入的commit 我已经输入了commit fix: 删除无用代码 然后现在表示不准确,然后我通过命令git commit --amend修改commit

Python语言基础与应用-北京大学-陈斌-P40-39-基本扩展模块/上机练习:计时和文件处理-给算法计时-上机代码

Python语言基础与应用-北京大学-陈斌-P40-39-基本扩展模块/上机练习&#xff1a;计时和文件处理-给算法计时-上机代码 # 基本扩展模块训练 给算法计时 def factorial(number): # 自定义一个计算阶乘的函数i 1result 1while i < number:result result * ii 1return(resul…

推动新质生产力,机器人技术的黄金时代——张驰咨询

在这个不断进步和变化的时代中&#xff0c;张驰咨询与各个行业的领先企业紧密合作&#xff0c;致力于构建新一代生产力的未来蓝图。张驰咨询深刻理解各个行业的发展态势与独特性&#xff0c;通过深入分析企业遇到的挑战&#xff0c;张驰咨询提供定制化的解决方案&#xff0c;旨…

【代码随想录 | 数组 01】二分查找

文章目录 1.二分查找1.1题目1.2思路&#xff08;核心&#xff1a;区间的定义&#xff09;1.3左闭右闭1.4左闭右开1.5总结 1.二分查找 1.1题目 704.二分查找—力扣题目链接 题目&#xff1a;给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 …

Java毕业设计-基于spring boot开发的实习管理系统-毕业论文+答辩ppt(附源代码+演示视频)

文章目录 前言一、毕设成果演示&#xff08;源代码在文末&#xff09;二、毕设摘要展示1.开发说明2.需求分析3、系统功能结构 三、系统实现展示1、前台功能模块2、后台功能模块2.1 管理员功能2.2 教师功能2.3 学生功能2.4 实习单位功能 四、毕设内容和源代码获取总结 Java毕业设…

外贸产品再好,推广不出去也白搭!

外贸产品虽然质量和价格都很好&#xff0c;但是如果没有推广的支持&#xff0c;就很难在市场上打开局面。好的产品需要好的营销&#xff0c;推广不仅仅是宣传产品的重要手段&#xff0c;更是提高产品知名度和市场占有率的关键。只有通过有效的推广措施&#xff0c;才能让产品赢…

(Linux学习九)管道、重定向介绍

FD:文件描述符。 0,1,2,3&#xff0c;&#xff0c;&#xff0c;。进程打开文件所用。 0标准输入 1 标准输出 2 标准错误输出 3普通文件 一、管道 | 命令 | tee | xargs | 命令1的输出&#xff0c;作为命令2的输入&#xff0c;命令2的输出作为命令3的输入 | tee 三通&#xff…

【Python】random库

专栏文章索引&#xff1a;Python 原文章&#xff1a;Python中random函数用法整理_python random-CSDN博客 目录 1.random.random() 2.random.uniform(a, b) 3.random.randint(a, b) 4.random.randrange([start], stop[, step]) 5. random.choice() 6. random.shuffle(x[,…

工业园区智慧水电设备管控系统

在现代工业园区中&#xff0c;水电设备的管控系统起着至关重要的作用。这些系统不仅仅是简单的机械装置&#xff0c;它们更是一种智慧的结合&#xff0c;为工业生产提供了可靠的保障和高效的管理。让我们一起来探索工业园区智慧水电设备管控系统的奥秘。 我们来看看水电设备的…

电脑内存条

目录 一&#xff0c;电脑内存条是什么1&#xff0c;定义2&#xff0c;作用 二&#xff0c;怎样查看自己电脑内存条1&#xff0c;window运行管理器2&#xff0c;软件3&#xff0c;intel官网4&#xff0c;计算机命令行模式 三&#xff0c;选择电脑内存条1&#xff0c;选择ddr2&am…

如何在WordPress网站上设置多语言展示

在今天的全球化世界中&#xff0c;拥有多语言网站对于吸引更广泛的受众至关重要。前不就我们遇到Hostease的客户咨询我们的在线客服&#xff0c;他想要对他的wordpress网站支持多语言。我们提供给客户可以尝试以下的插件来支持多语言。 在本教程中&#xff0c;我们将逐步介绍如…