Web秀
首页
专栏
文章
问答
热点
导航
实例
首页
登录
首页
前端
JavaScript
Vue.js
CSS
Uni-App
专栏
问答
工具
全网热点
导航
前端
设计
实例
登录
zxg_神说要有光
公号「神光的编程秘籍」
文章
文章
问答
专栏
赞过
文章
问答
专栏
赞过
最新
热门
zxg_神说要有光
Lv0
公号「神光的编程秘籍」
0
关注
0
关注者
关注
zxg_神说要有光
2年前
Webpack
为什么说用 babel 编译 typescript 是更好的选择
这是我参与更文挑战的第1天,活动详情查看:更文挑战。typescript给javascript扩展了类型的语法和语义,让js代码达到了静态类型语言级别的类型安全,之前只能在运行时发现的类型不安全的问题,现在能在编译期间发现了,所以大项目越来越多的选择用typescript来写。除此之外,typescript还能够配合ide做更好的智能提示,这也是用typescript的一个理由。类型安全:如果一个类型的变量赋值给它不兼容类型的值,这就是类型不安全,如果一个类型的对象,调用了它没有的方法,这也是类型不安全。
547009
3299
0
zxg_神说要有光
Lv0
公号「神光的编程秘籍」
0
关注
0
关注者
关注
zxg_神说要有光
2年前
Webpack
JavaScript Debugger 原理揭秘
代码写完会运行一下看下效果,开发的时候我们更多都是通过dubugger来单步或断点运行。我们整天在用debugger,可是你有想过它的实现原理么。本文会解答以下问题:代码运行的底层原理是什么为什么需要debuggerdebugger实现原理是什么如何实现debugger客户端代码运行的原理是什么代码的运行方式可以分为直接执行和解释执行两类。不知道平时你有没有注意,可执行文件直接./xxx就可以执行,而执行js文件需要node./xxx,执行python文件需要python./xxx,这就是编译执行(直接执
546677
3238
0
zxg_神说要有光
Lv0
公号「神光的编程秘籍」
0
关注
0
关注者
关注
zxg_神说要有光
2年前
Webpack
《从 0 到 1 手写 babel》思路分享
前言周末我在开心地写着小册的时候,不小心碰倒了饮料,撒了一些在键盘上,虽然我很快的收拾了一下,但电脑却突然关机了。我尝试着重启了一下发现启动不了了,最终确认它坏掉了。电脑坏掉倒不是我最担心的,主要是我答应了很多读者要下周上线小册,不能再鸽了,可是现在不得不鸽了,因为代码全在那台电脑。我在想着怎么弥补比较好,想起不少人期待最后的《手写简易的babel》那个案例的,正好我最近也在写那个案例了,我想着要不提前分享下思路吧。算是一些补偿(也公布下再鸽几天的消息)。整体思路babel的编译流程我们知道,babel的
545972
3317
0
zxg_神说要有光
Lv0
公号「神光的编程秘籍」
0
关注
0
关注者
关注
zxg_神说要有光
2年前
Webpack
基于 babel 和 postcss 查找项目中的无用模块
背景昊昊是业务线前端工程师(专业页面仔),我是架构组工具链工程师(专业工具人),有一天昊昊和说我他维护的项目中没用到的模块太多了,其实可以删掉的,但是现在不知道哪些没用,就不敢删,问我是不是可以做一个工具来找出所有没有被引用的模块。毕竟是专业的工具人,这种需求难不倒我,于是花了半天多实现了这个工具。这个工具是一个通用的工具,node项目、前端项目都可以用它来查找没有用到的模块,而且其中模块遍历器的思路可以应用到很多别的地方。所以我整理了实现思路,写了这篇文章。思路分析目标是找到项目中所有没用到的模块。项目
545998
3184
0
zxg_神说要有光
Lv0
公号「神光的编程秘籍」
0
关注
0
关注者
关注
zxg_神说要有光
2年前
工具类
nodejs 如何实现控制台打印高亮代码
当代码运行报错时,我们会打印错误,错误中有堆栈信息,可以定位到对应的代码位置。但有的时候我们希望能够更直接准确的打印报错位置的代码。比如这样:这个可以使用@babel/code-frames来做到:const{codeFrameColumns}=require('@babel/code-frame');constres=codeFrameColumns(code,{start:{line:2,column:1},end:{line:3,column:5},},{highlightCode:true,mes
546169
3355
0
zxg_神说要有光
Lv0
公号「神光的编程秘籍」
0
关注
0
关注者
关注
zxg_神说要有光
2年前
Webpack
实现一个简易的 npm install
现在写代码我们一般不会全部自己实现,更多是基于第三方的包来进行开发,这体现在目录上就是src和node_modules目录。src和node_modules(第三方包)的比例不同项目不一样。运行时查找第三方包的方式也不一样:在node环境里面,运行时就支持node_modules的查找。所以只需要部署src部分,然后安装相关的依赖。在浏览器环境里面不支持node_modules,需要把它们打包成浏览器支持的形式。跨端环境下,它是上面哪一种呢?都不是,不同跨端引擎的实现会有不同,跨端引擎会实现require
545240
3207
0
zxg_神说要有光
Lv0
公号「神光的编程秘籍」
0
关注
0
关注者
关注
zxg_神说要有光
2年前
Webpack
一个让 git clone 提速几十倍的小技巧
这是我参与更文挑战的第2天,活动详情查看:更文挑战。不知道大家有没有遇到比较大的项目,gitclone很慢很慢,甚至会失败的那种。大家会怎么处理的呢?可能会考虑换一个下载源,可能会通过一些手段提高网速,但是如果这些都试过了还是比较慢呢?今天我就遇到了这个问题,我需要把typescript代码从gitlab下载下来,但是速度特别慢:gitclonehttps://github.com/microsoft/TypeScriptts复制代码等了很久还是没下载完,于是我加了一个参数:gitclonehttps:/
546064
3281
0
zxg_神说要有光
Lv0
公号「神光的编程秘籍」
0
关注
0
关注者
关注
zxg_神说要有光
2年前
Webpack
前端领域的转译打包工具链(下):工程化闭环
这是我参与更文挑战的第7天,活动详情查看:更文挑战。这是前端领域的转译打包工具链的第二篇文章,上篇文章讲了前端领域的各种转译器,包括babel、tsc、terser、eslint、postcss、posthtml、swc等,介绍了他们各自的用途和通用的原理,还有在项目中使用的3种方式:githooks、ide插件、打包工具的loader和plugin。这一节我们继续探究工程化的工具链,包括打包工具、模块化、v8引擎、跨端引擎、工程化的闭环等。任务管理器和打包工具其实在打包工具流行之前,当时主要是各种任务管
545128
3299
0
zxg_神说要有光
Lv0
公号「神光的编程秘籍」
0
关注
0
关注者
关注
zxg_神说要有光
2年前
Webpack
为啥套娃?聊聊 babel、jscodeshift 和阿里妈妈的 gogocode
首先,我是《babel插件通关秘籍》掘金小册的作者,对babel有源码级的掌握,算是有资格讨论这个话题。本来会探讨以下话题:babel是怎么转换代码的jscodeshift是怎么转换代码的babel和jscodeshift的区别为什么不推荐gogocodebabel是怎么转换代码的babel编译流程分为3步:parse、transform、generateparse:把源码转成AST,babelparser(babylon)支持esnext语法,可通过插件支持typescript、jsx、flow等语法t
546037
3246
0
zxg_神说要有光
Lv0
公号「神光的编程秘籍」
0
关注
0
关注者
关注
zxg_神说要有光
2年前
Webpack
从前端编译到手写 Babel
编译这个概念好像离前端很遥远,遥远到好像工作面试都不要求相关的知识。但是,真的遥远么?我们每天用Babel、TypescriptCompiler来做代码的转换,用VueTemplateCompiler来做Vue模版的解析,还会用Eslint做代码的静态检查、用Terser做代码压缩,最重要的是我们的JS代码是跑在JS引擎上的。这些不都是编译技术么?现在,你还觉得编译离前端很遥远么?其实,并不是编译技术在前端用不到,而恰恰是因为太过常用而容易被忽略。我们会去学习一些工具的使用,但不会去学习更底层的一些原理。
545949
3255
0
下拉加载更多
猜你喜欢
换一换
最新文章
更多