你的位置:免费情侣作爱视频 > y11111少妇无码电影 > 销魂老女人老泬 一文带你了解新一代的编译器具 SWC

销魂老女人老泬 一文带你了解新一代的编译器具 SWC

时间:2022-05-10 20:27 点击:201 次

销魂老女人老泬

最近前端圈掀翻了一阵 rust 风,但凡能用 rust 重写的前端器具就用 rust 重写,今天先容的器具即是通过 rust 扫尾的 bable:swc,一个将 ES6 回荡为 ES5 的器具。

而且在 swc 的官网,很直白说我方和 babel 对标,swc 和 babel 号令不错互相替换,况兼大部分的 babel 插件也如故扫尾。

使用 rust 的一个上风即是快,比如咱们之前的一个名目,将 babel 替换成 swc 后,编译速率从正本的 7 秒晋升到了 1 秒,成果径直爆炸。

上手

swc 与 babel 不异,将号令行器具、编译中枢模块分化为两个包。

@swc/cli 近似于 @babel/cli; @swc/core 近似于 @babel/core;
npm 销魂老女人老泬i -D @swc/cli @swc/core 

通过如下号令销魂老女人老泬,不错将一个 ES6 的 JS 文献回荡为 ES5。

npx swc source.js -o dist.js 

底下是 source.js 的代码:

const start = () => {   console.log('app started') } 

代码中囊括了 ES6 的两个特色,const 声明 和 箭头函数。经过 swc 回荡后,这两个特色诀别被回荡成了 var 声明 和 function 匿名函数。

成就文献

swc 与 babel 不异,复古近似于 .babelrc 的成就文献:.swcrc,成就的样貌为 JSON。

{   "jsc": { // 编译端正     "target": "es5", // 输出js的门径     "parser": {       // 除了 ecmascript,还复古 typescript       "syntax": "ecmascript",       // 是否解析jsx,对应插件 @babel/plugin-transform-react-jsx       "jsx": false,       // 是否复古守密器,对应插件 @babel/plugin-syntax-decorators       "decorators": false,       // 是否复古动态导入,对应插件 @babel/plugin-syntax-dynamic-import       "dynamicImport": false,       // ……       // babel 的大部分插件都能在这里找到对应成就     },     "minify": {}, // 压缩关系成就,需要先开启压缩   },   "env": { // 编译扫尾关系成就     "targets": { // 编译扫尾需要适配的浏览器       "ie": "11" // 只兼容到 ie 11     },     "corejs": "3" // corejs 的版块   },   "minify": true // 是否开启压缩 } 

babel 的插件系统被 swc 整合成了 jsc.parser 内的成就,基本上大部分插件都能慈祥到。而且,swc 还吸收了压缩的材干,通过 minify 属性开启,jsc.minify 用于成就压缩关系的端正,更谛视的成就可检察文档。

Node APIs

通过在 node.js 代码中,导入 @swc/core 模块,不错在 node.js 中调用 api 径直进行代码的编译,这对 CLI 器具的开辟来说是旧例操作。

// swc.mjs import { readFileSync } from 'fs' import { transform } from '@swc/core'  const run = async () => {   const code = readFileSync('./source.js', 'utf-8')  const result = await transform(code, {     filename: "source.js",   })   // 输出编译后代码   console.log(result.code) }  run() 

销魂老女人老泬

打包代码

除了将代码转义,swc 还提供了一个肤浅的打包材干。咱们新建一个 src 文献夹,在内部新建两个文献:index.js、utils.js。

// src/index.js import { log } from './utils.js' const start = () => log('app started') start() 
// src/utils.js export const log = function () {   console.log(...arguments) } export const errorLog = function () {   console.error(...arguments) } 

不错看到销魂老女人老泬 index.js 导入了 utils.js 中的一个要领,然后咱们新建一个 spack.config.js 文献,该文献是 swc 打包的成就文献。

// spack.config.js module.exports = {   entry: {     // 打包的进口     web: __dirname + "/src/index.js",   },y11111少妇无码电影   output: {     // 打包后输出的文献夹     path: __dirname + "/dist",   }, }; 

然后在号令行开动:

$ npx spack 

打包获胜后,会在 dist 目次输出一个 web.js 文献。

不错看到,不仅将 index.js、utils.js 打包成了一个文献,还进行了 tree shaking,将 utils.js 中莫得使用的 errorLog 要领删掉了。

能不可用?

babel 毕竟经过了这样多年的发展,岂论是 bug 输了,如故社区活跃度都远远优于 swc。是以,要是是小居品试水如故不错试一下 swc 的,旧名目要是如故使用了 babel 如故不刻毒进行迁徙。

在使用的流程,如故发现了一些小问题。比如,要是我使用了 async function,swc 会自动导入 regenerator-runtime 模块。

“电话降噪”功能苹果描述为:您将听筒放在耳边时,降噪可减少电话中的环境噪声。其实是帮助用户在环境嘈杂的情况下获得更清晰的通话效果的功能。但目前官方也没有对此功能为什么再iPhone13系列取消的具体原因。如果您想要“电话降噪”功能,可以考虑下相对较新的iPhone12系列机型,性能没差多少,但价格更加合适哦。

App Store 一直以来都是 iPhone 生态的最重要一环,在初代 iPhone 商店,因为 App 比较少,当时就有 Top 25 榜单:

// 编译前,有个 async 要领 const start = async () => {   console.log('app started') } 

调用 swc 编译后,代码如下:

这个扫尾看起来是没问题的,关联词 swc 与 babel 近似,也有 helpers(@swc/helpers),同期提供了 externalHelpers 开关, 要是把 externalHelpers 缔造为 true,swc 会将一些器具类,通过模块的样貌导入。

// .swcrc {   "jsc": {     "externalHelpers": true   } } 

而 externalHelpers 的默许值是 false,那这个时辰,regenerator-runtime ,到底是通过模块的样貌导入,如故把总共这个词代码写入到文献?

swc 恰恰有个 issue [https://github.com/swc-project/swc/issues/1461] 在盘问这个问题。

除了上头说的这个问题,其实还有极少,即是作家以为之前的架构有问题,正在加紧重写 2.0 版块,嗅觉不错期待一下,另外提一句,swc 的作家是一个 97 年的韩国小哥,当今大学都还没毕业,终末我也只可说一句:得力!

【裁剪推选】

鸿蒙官方计策合营共建——HarmonyOS时刻社区 Kubernetes容器平台架构解读 支付宝 App 集五福版发布:福相伴,五福,飞速到! Windows 11 22526新版缔造无数问题!新特色抢先看 WiFi7有多强?比WiFi6高三倍,速率快如飞 Python再获年度编程言语,微软或成最大赢家

 

服务热线
官方网站:www.365jz.com
工作时间:周一至周六(09:00-18:00)
联系我们
QQ:2852320325
邮箱:w365jzcom@qq.com
地址:武汉东湖新技术开发区光谷大道国际企业中心
关注公众号

Powered by 免费情侣作爱视频 RSS地图 HTML地图


免费情侣作爱视频-销魂老女人老泬 一文带你了解新一代的编译器具 SWC