babel 来自巴别塔的典故: 当时人类联合起来兴建希望能通往天堂的高塔,为了阻止人类的计划,上帝让人类说不同的语言,使人类相互之间不能沟通,计划因此失败,人类自此各散东西。...这座塔就是巴别塔。 这个巴别塔的典故很符合 babel 的转译器的定位。 ? babel 的编译流程 babel 从最初到现在一直的目的都很明确,就是把源码中的新语法和 api 转成目标浏览器支持的。...babel 的编译流程和目的从没有变过,但是完成这个目的的方式却变化很大,我们来回顾一下 babel 6,babel 7 都是怎么设计的,babel 8 又会怎么做,或许能帮你真正理解 babel。...只能转成 es5,那目标环境如果已经支持一些 es6 特性了,那这些转换和 polyfill 岂不是无用功?而且还增加了产物的体积。...useBuiltIns 就是使用 polyfill (corejs)的方式,是在入口处全部引入(entry),还是每个文件引入用到的(usage),或者不引入(false)。
第一部分 | NLP的诞生史 《圣经》关于巴别塔的故事 1.从前,巴比伦人想建造一座塔直通天堂。 建塔的人都说着同一种语言,心意相通、齐心协力。上帝看到人类竟然敢做这种事情,就让他们的语言变得不一样。...因为人们听不懂对方在讲什么,于是大家整天吵吵闹闹,无法继续建塔。后来人们把这座塔叫作巴别塔,而“巴别”的意思就是“分歧”。...2.虽然巴别塔停建了,但一个梦想却始终萦绕在人们心中:人类什么时候才能拥有相通的语言,重建巴别塔呢? 机器翻译被视为“重建巴别塔”的伟大创举。...具体的模型将在后文中有所展开 许多人(包括我自己)在Siri刚刚问世的时候得到了并不愉快的体验,于是对人机问答的水平感到失望,并且再也没有尝试过用它。...敬请期待明天的《元旦,一起NLP!(下)》
我们一起看一下打包后的结果 (()=>{"use strict";console.log(3)})(); 未使用的 JSON 数据消除 // main.json { "a": "a", "b"...前提是模块必须采用 ES6 Module 语法,因为 Tree Shaking 依赖 ES6 的静态语法:import 和 export。...CommonJS 导入时,require 的路径参数是支持表达式的,路径在代码执行时是可以动态改变的,所以如果在代码编译阶段就建立各个模块的依赖关系,那么一定是不准确的,只有在代码运行了以后,才可以真正确认模块的依赖关系...ES6 模块不是对象,它的对外接口只是一种静态定义,在代码编译,静态解析阶段就会生成,这样我们就可以使用各种工具对 JS 模块进行依赖分析,优化代码。...import 后未使用,Tree Shaking 完全可以将其优化掉;但是 b 在 import 后未使用,但因为存在他还执行了为数组原型添加了方法,副作用还是会被保留下来。
作为对比,React 版本则达到了 964 KB 之多(即使减去在 Riot 版本中未使用到的 Backbone 和 jQuery,React 版本仍然有 600 KB)。...在 Riot 中使用 ES6 示例的应用采用 ES6 编写,我使用 6to5 转译器将其转换为 ES5 代码,使用 Webpack 将编译后的代码以及需要的库一起打包。...它添加了额外的编译步骤。 标签文件编译器指定了你可以使用的语言和模板(CoffeeScript、ES6和Jade),这有悖于“使用你最喜欢的工具”的理念。...标签文件需要构建工具(比如 Webpack 和 Browserify)直接使用标签转换器来进行转换。...调试 当用 Webpack 打包时你需要使用开发工具 source-map 配置选项来为你打包后的应用生成 source map 文件。这使得你可以在 ES6 的源码文件中进行调试。
我们的初衷: 致力于降低新人入门的门槛,开通问题求助的渠道; 收集目前零散的文章和发布高质量教程/资源,打造国内一流的Rosetta学习资源; 形成开放、可持续的平台,加强国内科研人员在Rosetta方面的学习和交流...教程 https://awakenwu.github.io 特此:如果您对Rosetta有一定的基础和实战经验,不妨加入我们,一起共建这个平台~如果您没有接触过Rosetta,有对此有兴趣,不妨加入我们的微信群一起讨论和学习...本文均在CentOS7(release 7.6.1810)版本下进行过的测试 我推荐使用Clang3.4.2的编译方法。...Rosetta简介 Rosetta是计算结构生物学皇冠上的一颗璀璨明珠,也是人类通往蛋白设计的巴别塔。...推荐使用!并且更加灵活和快速。
: 谢尔巴茨基公爵 谢尔巴茨卡娅公爵夫人 (下面按照年龄顺序排列) 谢尔巴茨基——多莉和吉提,娜塔莉的哥哥——与列文一起温习功课并同时考进大学 娜塔莉(利沃娃)——刚进入社交界不久,就嫁给了外交官利沃夫...多莉(达申卡,多琳卡) 吉提(小名卡坚卡,卡佳)(卡捷琳娜·亚历山德罗夫娜)—— 林农小姐——未做介绍,大概是三姐妹的家庭教师一类的 瓦先卡·维斯洛夫斯基——胖乎乎的年轻人,谢尔巴茨基的表兄弟...卡塔瓦索夫,费奥多尔·瓦西里伊奇,早已打算履行对列文许下的去他家造访的诺言,于是乘车同他一起前往。...我在特维尔服役时见过他,当时他去那儿招募新兵。他十分富有,人长得漂亮,交游也很广,虽然是个侍从武官,却很可爱,人很好。还不光人好,我在这里听说他既有教养又聪明。 亚历山大——渥伦斯基的哥哥。...永远和精英们泡在一起的头顶谢得发亮的克里温 彼得里茨基(皮埃尔)是个年轻的中尉,出身并不十分显贵,非但不富裕,而且债台高筑,晚上总是喝醉酒,时常因为荒唐可笑的丑行被关禁闭,但是同事和上级都喜欢他。
我们期待:在 Vscode 开发时,只要敲出方法,编辑器可以自行提示该方法参数的类型是什么,这样我就不会把原本该写成数值类型的参数写成字符串类型了,大大降低代码出错风险。...通常情况下,实际开发中我们都需要使用构建工具对代码进行打包,TS同样也可以结合构建工具一起使用,下边以webpack为例介绍一下如何结合构建工具使用TS。...ts加载器,用于在webpack中编译ts文件 html-webpack-plugin webpack中html插件,用来自动创建html文件 clean-webpack-plugin...,或者执行npm start来启动开发服务器 四、Babel 经过一系列的配置,使得TS和webpack已经结合到了一起,除了webpack,开发中还经常需要结合babel来对代码进行转换以使其可以兼容到更多的浏览器...如此一来,使用ts编译后的文件将会再次被babel处理,使得代码可以在大部分浏览器中直接使用,可以在配置选项的targets中指定要兼容的浏览器版本。
阅读字数:2175 | 6分钟阅读 摘要 愿大家能够更好的开好站立会议,提升团队成员的协同,建造自己的巴别塔。 大家好,我是华为云的产品经理恒少。...作为布道师和产品经理,出差各地接触客户是常态,经常和华为云的客户交流、布道、技术沙龙,但是线下交流,覆盖的用户总还是少数。 我希望可以借线上的平台,和用户持续交流华为在研发效能提升上的思索和考虑。...一、开篇小故事 巴别塔,也叫通天塔;据《圣经·旧约·创世记》第11章记载:当时人类联合起来兴建希望能通往天堂的高塔,高塔越来越接近天堂,上帝紧张了,他看到人们这样齐心协力,统一强大,心想:如果人类真的修成宏伟的通天塔...为了阻止人类的计划,上帝让人类说不同的语言,使人类相互之间不能沟通,并让人类分散世界各地,最终巴别塔没有建成。...因为站在累,所以时间久了,就开不下去了,哈哈哈…… 愿大家能够更好的开好站立会议,提升团队成员的协同,建造自己的巴别塔:) 以上为今天的分享内容,谢谢大家!
Tree-shaking -- rollup VS Webpack rollup 是在编译打包过程中分析程序流,得益于于 ES6 静态模块(exports 和 imports 不能在运行时修改),我们在打包时就可以确定哪些代码时我们需要的...简单来说,就是压缩工具读取 webpack 打包结果,在压缩之前移除 bundle 中未使用的代码。...: UglifyJS 不支持 ES6 及以上,需要用 Babel 将代码编译为 ES5,然后再用 UglifyJS 来清除无用代码; 通过 Babel 将代码编译为 ES5,但又要让 ES6 模块不受...在官方文档最后有说明,Babel Minify 最适合针对最新的浏览器(具有完整的 ES6+ 支持),也可以与通常的 Babel es2015 预设一起使用,以首先向下编译代码。...es2015 预设一起使用,以首先向下编译代码。
: "compilerOptions": { "target": "ES6" } 如上设置,我们所编写的ts代码将会被编译为ES6版本的js代码 lib 指定代码运行时所包含的库(宿主环境),可选值...有错误的情况下不进行编译,默认值:false 4、webpack 通常情况下,实际开发中我们都需要使用构建工具对代码进行打包,TS同样也可以结合构建工具一起使用,下边以webpack为例介绍一下如何结合构建工具使用...编译器 ts-loader ts加载器,用于在webpack中编译ts文件 html-webpack-plugin webpack中html插件,用来自动创建html文件 clean-webpack-plugin...npm start来启动开发服务器 5、Babel 经过一系列的配置,使得TS和webpack已经结合到了一起,除了webpack,开发中还经常需要结合babel来对代码进行转换以使其可以兼容到更多的浏览器...如此一来,使用ts编译后的文件将会再次被babel处理,使得代码可以在大部分浏览器中直接使用,可以在配置选项的targets中指定要兼容的浏览器版本。
"bulid": "webpack" } 使用命令行:npm run build webpack 通常情况下,实际开发中我们都需要使用构建工具对代码进行打包,TS同样也可以结合构建工具一起使用,下边以webpack...整合,通常情况下,实际开发中我们都需要使用构建工具对代码进行打包;TS同样也可以结合构建工具一起使用,下边以webpack为例介绍一下如何构建工具使用TS: 初始化项目,进入项目根目录执行命令:npm...ts编译后的文件将会再次被babel处理;使得代码可以在大部分浏览器中直接使用;同时可以在配置选项的targets中指定要兼容的浏览器版本 编译选项 自动编译文件 tsc xxx.ts -w 自动编译整个项目...padding 和 border 再加上设置的宽高一起决定整个盒子的大小。...(共66条) 这是我的第一次JavaScript初级技巧 localStorage和sessionStorage本地存储 HTML5中的拖放功能 挑战前端知识点HTTP/ECMAScript 必学必会-
大家好,又见面了,我是你们的朋友全栈君。 古语有云:“君子生非异也,善假于物;工欲善其事,必先利其器。”...1、使用Babel把ES6编译成ES5 1.1 建立工程目录 先建立一个项目的工程目录,并在目录下边建立两个文件夹:dist 和 src 1.2 初始化项目 在安装Babel之前,需使用npm init...目录下,新建index.js文件,使用ES6中的 let声明和字符串模板 let name = 'Bread and Dream'; let greeting = `hello ${name}`; 在命令行输入...是一个主流的 Babel 插件数组;Stage-X 是实验阶段的 Presets 2.3 将 webpack 和 Babel 结合在一起 就是针对以 .js 结尾的文件使用 babel-loader。...5、总结 使用babel搭建环境的顺序: 创建项目创建两个文件夹src和dist 使用npm init 初始化项目生成package.json(项目信息文件) 使用 npm install -g babel-cli
大家好,我是若川。持续组织了近一年的源码共读活动,感兴趣的可以 点此扫码加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。...那你的学习方向能不能和「减少获客成本」或者「提高转化率」挂钩呢? 比如,别家都是放马车的图片,你能不能做马车的3D全景展示呢? 将你的努力方向,尽可能与公司核心业务挂钩,你在公司的位置就会稳固。...这就是我要聊的第一点:「懂业务会指引你正确的努力方向」。 懂业务能让你升职加薪 接下来来说第二点:「懂业务能让你升职加薪」。 圣经旧约中记载,人类修建通往天堂的巴别塔。...做业务就像是修巴别塔,不同的工种会说不同的语言: 产品的语言是原型图、各种AB test的数据 开发的语言是 Java、JS、SQL等 测试的语言是各种用例 这些语言都是对业务的描述,但是这些工种互相之间听不懂对方的语言...如果你能听懂不同工种的语言,将他们团结起来,当巴别塔建成之时,你就是最大的功臣。 这一切的前提,就是「懂业务」。 那有同学会说:工作这么忙,我哪有经历去了解别的工种啊?
但当涉及AI霸主时,这个笑话更接近现实,因为人们真的担心人工智能将扮演上帝般的角色,与我们敬爱的宗教机构一起接管人性。 作为一个信仰犹太教的女性,我有时会想知道AI的兴起对世界宗教的意义何在。...AI使宗教失效 最后,人工智能有可能促成无神论的兴起和世界宗教的最终解体。在一个由大数据、全球化和飞速发展的科学推动的世界中,有一种论调说我们正在走向宗教过时的未来。...或者,就像巴别塔的故事一样,AI的发展是否会造出一座足够高的塔以直达天堂,引发造物主制造出新的混乱和遗弃?...(译者注:巴别塔是《圣经》中记载,当时人类联合起来兴建希望能通往天堂的高塔;为了阻止人类的计划,上帝让人类说不同的语言,使人类相互之间不能沟通,计划因此失败,人类自此各散东西。)...《圣经》中的巴别塔 我没有答案,但我确实希望如果AI真的变得超级聪明,它可以成为造福世界的有益力量,帮助我们变得更“神圣”而不是更弱小——或者至少更充满爱,不管我们是否信仰宗教。
当牛逼哄哄的React如雷贯耳之时,我们最关心的还是它能不能用在我们的项目里, 怎么快速把他用起来,别等我们能把它用起来的时候又进入下一个框架时代了。...打包工具总得有,要不开发太受限,还是选最新最火的webpack,这样就可以用各种风格的模块系统,连样式和图片都能搁到模块系统里。...语言上嘛,我原本推崇coffee,而且也有现成的coffee-jsx编译器,但是看react社区都对ES6青睐有加, 了解了ES6的特性后,觉得一部分跟coffee挺像,还有一些确实超越了coffee,...我选用了generator-react-webpack-redux, 看名字就知道我要用的几个东西它大部分都包含了,除了webpack、react、redux,它还包含了ES6编译器babel, 还支持...实际上在开发中我们基本不需要动这里的代码。styles和images就不用说了。
所以,我们需要实时 build 依赖到应用本地,在微信小程序中引用本地的 modules。 对于这种构建场景,我认为 webpack 算是最方便的方案。...在开始之前,你需要准备 从官方文档,了解微信小程序是什么; 了解 Redux 应用状态管理方案,同时它也是 Flux 架构的具体实现; 了解 JavaScript 打包工具 webpack; 了解 ES6...为了方便经验少些的同学理解,我将这些依赖分步安装。 首先是代码转译工具 Babel: 有了上面这些模块,就可以在构建时,将 ES6/7 的代码转译为 ES5 的代码了(其实解释器都只认 ES5)。...因此,我们只需要安装 webpack module 本身即可,无需安装其他扩展和插件。...在微信后台回复「加群」,加入「一起发现小程序」微信交流群。 在微信后台回复任意关键词,还能获得相关小程序推荐,赶紧试试吧!
本文为CDA原创文章,作者曾科,转载请注明来源 巴别塔的轰塌 圣经旧约第十一章,讲到了巴别塔的故事:人类联合起来兴建希望能通往天堂的高塔;为了阻止人类的计划,上帝让人类说不同的语言,使人类相互之间不能沟通...由此机器翻译由此陷入低潮,此时上帝笑了,你们永远别想再造巴别塔,那么机器翻译之路就这么被打断吗,人类的动力来自希望,可此时,希望变成了绝望… 基于规则的机器翻译-不尽如人意 到了上个世纪七十年代,计算机性能与全球化的发展使得机器翻译重回人们视野...其实,这和人类翻译的思路是一脉相承的。...此时,上帝打了个喷嚏,额,我没事,这个貌似有点靠谱,但是你们还是造不出巴别塔。 再造巴别塔-任重道远 虽然统计机器翻译表现出色,但是机器翻译本身还很多问题,机器取代不了人类。...也就是说,机器翻译最终还是受制于人类对语言本身的了解,它到底是怎么产生的,大脑中是如何运行的......路漫漫其修远兮啊,但还是要有信心,总有一日人类能够重塑圣经,再造巴别塔!
第一步是在模块级别移除未使用且无副作用的模块,这一步由 webpack 的内置插件完成;第二步是在文件级别移除未使用的代码,这一步由代码压缩工具 Terser 完成的。...在 ModuleConcatenationPlugin 中,带着 sideEffectFree 标记的模块将不会被打包: ? 来到这里,webpack 完成了在模块级别对未使用模块的排除。...接下来,依靠 Terser,webpack 可以在文件级别,对未使用、无副作用的代码进行移除。...所以在使用 ES6 的模块系统之前,对 JavaScript 做编译时的依赖关系分析是近乎不可能的(并不是完全不可能。prepack 通过实现一个 JS 解释器,甚至可以在编译时提前进行静态计算)。...在 ES6 的模块系统中,使用 import/export 语法来进行模块的引入和导出。
// 使用 CommonJS 导入完整的 utils 对象 if (hasRequest) { const utils = require( 'utils' ); } 但是在使用 ES6 模块时,...// 使用 ES6 import 语句导入 request 函数 import { request } from 'utils'; ES6 模块依赖关系是确定的,和运行时的状态无关,因此可以进行可靠的静态分析...Wepack5.x Tree-shaking 机制 Webpack 2 正式版本内置支持 ES2015 模块(也叫做 harmony modules)和未使用模块检测能力。...ES2015 模块)",由此可以安全地删除文件中未使用的部分。...结果发现,本项目在配置 sideEffects:false 前后时长和体积没有明显变化。
什么是webpack? 前端目前最主流的javascript打包工具,在它的帮助下,开发者可以轻松地实现加密代码、多平台兼容。而最重要的是,它为前端工程化提供了最好支持。...如果一个新手不幸打开vue-cli中关于webpack的配置,乱起八糟的配置就像看天书一样(我就是这样)。...因此,这个系列教程先从JS、编译ES6等方面讲起,逐步延伸到CSS、SCSS等,再到多页面、懒加载等技术,力求将知识点解构,而不是混淆在一起。 3....demo01: 打包JS demo02: 编译ES6 demo03: 多页面解决方案–提取公共代码 demo04: 单页面解决方案–代码分割和懒加载 demo05: 处理CSS demo06: 处理Scss...致谢 此教程是在我学习 mooc 网 四大维度解锁 Webpack3.0 工具全技能 整理的代码和v4.0版本的升级教训。欢迎大家去学习。
领取专属 10元无门槛券
手把手带您无忧上云