猿创征文|【Typescript】搭建TS的编译环境

news/2024/5/4 3:25:55/文章来源:https://blog.csdn.net/weixin_47980825/article/details/126609993

多一些不为什么的坚持🤳

贤蛋 🥚大眼萌 ,一名很普通但不想普通的程序媛🙊

📝本文章收录于专栏:Typescript学习

搭建TS的编译环境

    • 🎈 认识Typescript
    • 💊 Typescript 的编译环境
    • 🚀 搭建TypeScript的运行环境
      • 🎯 项目环境的基本配置
      • 🏓 使用ts-node
      • 🥁 配置 webpack
    • 🍳 测试环境

🎈 认识Typescript

作为前端开发人员,我们都知道JavaScript是一门优秀的语言,并且在很多领域被大家广泛使用。但是随着用JavaScript的开发者越来越多,JavaScript 的缺点就被暴露出来了。例如ES5以及之前的使用的var关键字关于作用域的问题,最初JavaScript设计的数组类型并不是连续的内存空间等等。

随着ES6、7、8等的推出,每次都会让这门语言更加现代、更加安全、更加方便。但是JavaScript在类型检测上依然是毫无进展。

​ 如果JavaScript没有对我们传入的参数进行任何的限制,只能等到运行期间才发现这个 错误,有时候就是因为这个错误,导致整个项目崩溃。这个时候就萌生了Typescript

官方对Typescript的定义:

​ **Typescipt:**是拥有类型的JavaScript超集,它可以编译成普通、干净、完整的JavaScript代码。

​ 可以理解长是加强版的JavaScript。JavaScript所拥有的特性,TypeScript全部都是支持的,并且它紧随ECMAScript的标准,所以ES6、ES7、ES8等新语法标准,它都是支持的。并且在语言层面上,不仅仅增加了类型约束,而且包括一些语法的扩展,比如枚举类型(Enum)、元组类型(Tuple)等。并且TypeScript最终会被编译成JavaScript代码。

💊 Typescript 的编译环境

TypeScript最终会被编译成JavaScript来运行,所以我们需要搭建对应的环境

image-20220830162558236

我们需要先进行全局安装:

# 安装命令
npm install typescript -g
# 查看版本
tsc --version

image-20220830163418598

测试:

image-20220830170005698

🚀 搭建TypeScript的运行环境

上面介绍到的ts环境运行,但是这样每次都需要转换ts代码,很麻烦,下面我们介绍两种搭建Typescript的运行环境。

🎯 项目环境的基本配置

  • 直接配置webpack,让webpack对我们编写的代码进行一个编译,并且自动引入编译后的js文件;
  • webpack可以在代码修改后重新帮助我们进行编译,并且自动刷新浏览器,不需要手动操作
  1. 使用 npm 来初始化 package.json 文件:
npm init -y
  1. 安装本地TypeScript依赖
npm install typescript
  1. 初始化tsconfig.json文件

​ 在进行TypeScript开发时,我们会针对TypeScript进行相关的配置,而这些配置信息是存放在一个tsconfig.json文件中的。

tsc --init

image-20220830172206541

  1. 配置tslint来约束代码(推荐使用)
# 全局安装
npm install tslint -g
# 在项目中初始化tslint的配置文件:tslint.json
tslint -i

image-20220830172555223

🏓 使用ts-node

# 安装ts-node
npm install ts-node -g
# 安装ts-node需要依赖 tslib 和 @types/node 两个包
npm install tslib @types/node -g

测试代码:

image-20220830173235986

🥁 配置 webpack

  • 配置webpack 需要安装相关的依赖 webpack、webpack-cli、webpack-dev-server。从webpack 4 之后,在webpack环境下需要多配置webpack-cli。而webpack-dev-server则是可以在我们帮助我们开启本地服务,并且热更新
# 安装webpack 相关依赖
npm install webpack webpack-cli  webpack-dev-server -D

为了方便启动webpack,我们在package.json中添加如下启动命令

"scripts": {"test": "echo \"Error: no test specified\" && exit 1","build": "webpack","serve": "webpack serve"}

补充:如果我们需要区分开发的环境,则需要添加

"scripts": {"test": "echo \"Error: no test specified\" && exit 1","build": "webpack","serve": "cross-env NODE_ENV=development webpack-dev-server --mode=development --config build/webpack.config.js"
}

并且安装 cross-env 依赖

npm install cross-env -D
  • 因为需要解析.ts文件,所以需要依赖对应的loader:ts-loader
npm install ts-loader -D
  • 编译后的代码需要对应的html模块作为它的运行环境,需要使用html-webpack-plugin来将它插入到对应的模板中
npm install html-webpack-plugin -D

最后:配置webpack.config.js

const path = require("path")
const HtmlWebpackPlugin = require("html-webpack-plugin")module.exports = {mode: "development",entry: "./src/main.ts",output: {path: path.resolve(__dirname, "./dist"),filename: "bundle.js"},devServer: {},resolve: {extensions: [".ts", ".js", ".cjs", ".json"]},module: {rules: [{test: /\.ts$/,loader: "ts-loader"}]},plugins: [new HtmlWebpackPlugin({template: "./index.html"})]
}

🍳 测试环境

在终端编写命令

npm run serve

在浏览器中打开:http://localhost:8080/

image-20220830181824957

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

110道Java初级面试题及答案(最新Java初级面试题大汇总)

史上最全Java初中级面试题,发现网上很多Java初级面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本人发现网上虽然有不少Java相关的面试题,但第一未必全,第二未必有答案&am…

windows系统使用docker-compose

windows系统使用docker-compose 为什么使用docker-compose? 使用 Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具 1、新建docker-compose.yml文件 在windows系统找到docker的安装目录:C:P…

2022 IDC中国数字金融论坛 | 筑基金融信创 共话金融科技新愿景

2022年8月18日,第十届“IDC中国数字金融论坛”于北京举行。本届论坛以“开放融合、数字信任、智慧金融”为主题,基于IDC对全球金融科技发展及行业趋势的研究,发布对金融行业趋势的解读与对数字金融发展的洞见,为金融领域资深专家及…

怎么把PDF转换成CAD文件格式呢?

我们在工作中难免会遇到各种文件格式,而每种格式都有其独特的优点。比如PDF文件格式比其他文件格式更稳定,基本上所有系统都可以打开,内容不容易修改。而CAD文件格式,在工程建设中,尤其是设计阶段被广泛应用。那么当我…

27、CityNeRF

简介 主页:https://city-super.github.io/citynerf/ CityNeRF能够将城市尺度的3D场景打包到一个统一的模型中,它能够保存从卫星到地面不等尺度的高质量细节。顶部:使用边缘颜色蓝色(L1)、绿色(L2)和橙色(L3)来表示从最远到最近的三个等级,P…

L73.linux命令每日一练 -- 第十章 Linux网络管理命令 -- dig和host

10.19 dig:域名查询工具 10.19.1 命令详解 ​ 【命令星级】 ★★★★☆ ​ 【功能说明】 ​ dig命令是常用的域名查询工具,可以用于测试域名系统的工作是否正常。 ​ 【语法格式】 dig [option] dig [选项]​ **说明:**在dig命令及后面…

Debian/Ubuntu/Kali 如何安装 Spotify 音乐白嫖神器

How to install Spotify on Debian/Ubuntu/Kali Linux 可能有小伙伴不了解,什么是Spotify?博主照搬维基百科来做 简要介绍: Spotify(/ˈspɒtɪfaɪ/),中文译作“声田”),是一家瑞典…

如何图片批量重命名编号不要汉字?

如何图片批量重命名编号不要汉字?如果你是一个摄影发烧友,或者你是一名从事摄影相关工作的朋友,那么肯定经常会将拍摄好的照片转移到电脑上,然后进行批量重命名。其实不管什么时候,我们经常会遇到图片批量重命名的操作…

group by后,使用nvl失效问题

原因 首先,这篇博客写出了这个问题出现的原因: 链接: nvl(sum(字段),0) 的时候,能展示数据0,但是group by 下某个伪列的时候,查不到数据(转载) 这里我也总结下原因:没有记录返回则…

使用Kibana进行数据可视化

使用 Kibana 进行数据可视化 使用 ELK 堆栈(Elasticsearch、Logstash 和 Kibana)和 Elastic Stack 的一部分 Kibana 可视化和分析数据。 课程英文名:Data Visualization with Kibana 此视频教程共21.0小时,中英双语字幕&#x…

[模拟][模电][面试][运放]仪表放大器

前言 昨天访问量还是29万1千多,今天就变成了28万3千,CSDN又在倒退了!!! 目录前言框图\;\\\;\\\;框图 虚短:放大器的正负输入假设短路,两个端口电位相同虚断:放大器的正负输入假设断…

Linux命令记录大全

至于为什么写下该篇博客 身为以为软件工程师平时在工作中会经常的使用Linux系统,久而久之会发现该系统比我们平时用的Windows系统有着巨大的优势,不管是从安全层面和可扩展层面。而Linux的命令可以说是非常的多并难以全部记住,所以我写下该片…

Hive 多数组合并 CONCAT_WS

目录 多列的情况 先上结果 拆分concat_ws 可以拆分数组 然后在用split切分再变回数组 多行合并 多列的情况 先上结果 select split(concat_ws(,,array("AAA", "bbb"), array(CCC,"AAA", "bbb"), array("GGG","…

react native 使用阿里字体图标库

前言 本文基于 “react-native”: “0.69.5” 版本。 1.下载iconfont图标文件 将iconfont图标文件放置在src/assets/fonts react native 所需的字体图标文件仅需iconfont.ttf这一个文件即可其余文件只是用于打开demo_index.html,打包时可将其余文件删除 2.链接字…

Java配置41-搭建Kafka服务器

目录 1.服务器环境 2.安装kafka 1)上传安装介质 2)解压安装 3)修改配置文件 4)启动zookeeper 5)启动kafka 6)测试 ​​​​​ 1.服务器环境 系统版本:Red Hat Enterprise Linux Server…

IC入行第一步:怎样选择岗位和公司?

IC行业是一个比较火的行业,不少人想要转行IC,但不知道该如何选择岗位和公司? 其实这得根据个人的学历和专业结合选择,转行之前一定要考虑清楚,不要盲从,毕竟入行是一件大事,得认真分析选择适合…

Java配置42-配置redis高可用(sentinel监控)

目录 1.服务器环境 2.Redis服务器概况 3.Redis高可用 1)复制配置文件 2)修改redis.conf 3)修改sentinel.conf文件 4)启动redis和sentinel 5)配置redis信息 1.服务器环境 系统版本:Red Hat Enterpri…

共话龙蜥:中国操作系统到底有没有角力世界舞台的实力?

操作系统是计算机的灵魂所在,更是现代社会数字经济转型的关键。随着国内科技力量的壮大,当出现如 CentOS 停服等机遇时,会进一步助推国内操作系统发展。如今国内开源操作系统遍地开花,我们到底有没有角力国际舞台的实力呢&#xf…

vue独立提供模板下载功能

需求描述:页面需要下载模板文件(word、excel),这些文件是固定的,如果存储在服务端,由后端负责返回数据流,前端再处理数据流则太浪费性能。把文件放到前端,用户下载时直接提供。但是传…

状态模式

抽奖活动问题 加入每参加一次抽奖活动要扣除用户50积分,中奖概率是10%奖品数量固定,抽完就不能抽奖活动有四个状态:可以抽奖,不能抽奖,发放奖品,奖品领完活动状态转换关系: 状态模式 基本介…