babel tsc webpack

摘要:
js的话:babel编译+webpack模块打包ts的话:tsc编译成js+babel编译+webpack模块打包浏览器情况:如果您的浏览器支持es6所有语法那么就可以只用webpack来处理模块部分,如果你的浏览器连模块部分也支持,那我觉得就不需要任何工具了。babel的进化babel7已经可以直接支持编译tc了,这样一来tsc就没用用处了。

我要用啥?
js的话:babel编译+webpack模块打包
ts的话:tsc编译成js+babel编译+webpack模块打包
浏览器情况:如果您的浏览器支持es6所有语法那么就可以只用webpack来处理模块部分,如果你的浏览器连模块部分也支持,那我觉得就不需要任何工具了。当然如果你只是写了es5的语法也没有模块,那么也不需要任何工具
服务器情况:如果你用的是node,那么node是直接支持js新老语法和模块化的,也不需要任何工具,顶多你需要做得就是用tsc将其转为js这一步就行了
工具干什么的?
tsc:typescript自己的cli,编译ts为js,如果编译成es6了,浏览器不兼容,他也不管,他只管编译成js。这个时候就需要babel出场了
babel:编译新版js适配浏览器的代码,如果有新语法 或者新api,他会将其新语法转成老语法,新api做垫片处理来兼容,总之他能搞定就对了,但是他无法处理模块化
webpack:主要用来处理模块化的,当然也能打包 压缩等。因为babel不会处理模块化部分比如import export require等

多管闲事的这些家伙们?

babel的进化
babel7已经可以直接支持编译tc了,这样一来tsc就没用用处了。
但是,tsc是微软自己发明支持人家ts的工具,编译出来的代码我看了下,要比babel干净,适合人看。
究其原因是因为tsc只管编译成js,而不管兼容性,而babel自然还要做语法转义和垫片处理

webpack的附加功能

webpack不仅仅能处理模块,它能够将这些[tsc、babel]工具以plugin或者loader的形式包容进去,这样一来,我们也可以不单独再额外的用babel去处理兼容问题了
我们可以在webpack里使用ts-loader或者只用babel-loader做处理
总结
所以最后的总结是:我们只用webpack就行了,就可以把js或者ts搞定,编译成浏览器可执行的代码

悄悄话

除了webpack能解决模块化方案,你的选择还有browserify,它和webpack处理模块化思路一样,都是预编译。
另外如果你知道sea.js和require.js那么用这种类库的方式来支持其对应的模块语法也行。

配置文件

webpack的ts-loader实际上就是调用了tsc命令 所以需要tsconfig.js配置文件
webpack的babel-loader实际上就是调用了babel命令,也需要babel.config.js配置文件,但是我看大家将配置整合在了webpack中,可能少建一个文件吧

如果单独使用babel工具去处理ts的话,是不需要额外的安装ts和创建tsconfig.json的,那么对应的babel-loader也一样,
大致意思就是说,使用我babel处理ts就不用再安装任何ts第三方相关的东西了,我自己知道怎么处理。

免责声明:文章转载自《babel tsc webpack》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Mycat 关键特性Android注解学习(2)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

分离Webpack开发环境与生产环境的配置

这是Webpack+React系列配置过程记录的第五篇。其他内容请参考: 第一篇:使用webpack、babel、react、antdesign配置单页面应用开发环境 第二篇:使用react-router实现单页面应用路由 第三篇:优化单页面开发环境:webpack与react的运行时打包与热更新 第四篇:React配合Webpack实现代码分割与异步加...

webpack4.0打包失败的探索

①:运行命令npx webpack index.js 打包index.js文件失败,如下图提示 度娘说是因为没有设置webpack为生产或开发模式,于是我在package.json文件中添加如下代码 "scripts": { "dev":"webpack –-mode development", "build": "webpack –-...

用Visual Studio 2019搭建Node.js+Vue+Typescript(TS)Web框架项目,兼容VsCode

兼容VsCode就是可以用VsCode打开,代码不需要做任何修改 同样Visual Studio添加.sln和.njsproj也可以打开别人用VsCode创建的项目 本项目创建有3个目的: 1、用Visual Studio 2019创建 Vue.js Web应用程序 2、用vue输出Hello Vue 3、用Typescript输出Hello Ts 功能...

webpack 5 与 webpack-dev-server 3兼容性问题

说明:这里使用的是webpack: "^5.9.0",webpack-cli: "^4.2.0",webpack-dev-server: "^3.11.0" 问题1:通过 npx webpack-dev-server 启动项目失败,报错:Error: Cannot find module 'webpack-cli/bin/config-yargs' 解决...

webpack

写在前面的话: 之前使用过webpack构建vue的项目,并没有好好了解webpack的相关配置,导致踩过一些坑,下文将是一些webpack的基本配置,帮助了解这个工具,从而好好使用这个工具。 注明:本文参考入门Webpack,看这篇就够了 1. webpack 与 gulp、 grunt有什么不一样? “其实Webpack和另外两个并没有太多的可比性...

react webpack 环境配置

1. 默认已经安装了nodejs,并输入:npm init 根据提示输入内容并 创建 package.json 2. 创建项目 reactapp reactapp |--app |--components |--productBox.jsx |--main.jsx |--build |-...