-
移除在 ESM 模式生成的严格模式
起源
项目升级构建方式,以前的代码采用 AMD 风格组织代码,并使用
r.js
完成打包优化工作。后续成员选择采用 ES6 的风格编写代码,然后 webpack + babel 完成打包构建。迁移工作并不如想象中那么容易,终于完成各种配置,测试时候发现问题:抛出一个语法错误。错误很快被定位,属于历史代码的不规范写法,之所以现在暴露出来是因为新的构建方式会加入"use strict"
。严格模式
在编写代码的过程中,我们使用
strict mode
是一种很好的方式,严格模式会将 JavaScript 陷阱直接变成明显的错误,比如未声明导致的全局变量,可以让我们开发过程中就发现错误。众所周知,JavaScript 这门语言之前存在大量不好的设计,使用严格模式意味着在采用一种限制性更高的方式编写代码,同时更 “安全”。但这里所谓的安全在生产环境又可能是另外一回事,尤其是对于那些上了年纪的历史代码,我们更倾向于在生产环境去除严格模式。
ES2015+
现在大部分人已经在使用更强大,更具有表现力的
ES2015+
编写代码。可能还会使用到 babel 来转化成用于生产环境运行的代码,在使用preset es2015
时,会自动加入“use strict”
。babel 的处理方式是将 ES2015 模块转换成
CommonJS
格式的,然后再统一处理,即transform-es2015-modules-commonjs
,这个插件位于preset es2015
中,并且依赖于transform-strict-mode
也许你会想去掉严格模式
也许你会想去掉严格模式,毕竟对于一些历史代码,很难预测加入严格模式会导致什么异常。
- ...
-
编写现代 JavaScript 代码
原文作者:Sébastien Castiel
原文链接:Writing modern JavaScript code
说点什么:这是一篇很朴素的文章,讲的道理都懂,但实际上,在工作中遇到类似的情形却未必如此,编写可维护,可阅读,更安全的代码是我们应有的责任。
是不是还认为 JavaScript 是一门用于在光标悬浮时改变页面元素的语言?这些日子已经不复存在,每一种语言都在随着时间推移而发展,我们使用语言的方式同样也在发展。看一下你一两年前写的代码:会感到羞愧吗?如果是的话,这篇文章应该很适合你。
这里会列出一些所谓的最佳实践,目的是让你的 JavaScript 代码更容易编写,阅读和维护。
使用可格式化代码的 linter
第一个建议是使用 linter 工具,可以帮助你检查在不同文件是否遵守一致的规则,尤其是当不同开发人员在同一个项目上工作:缩进,括号中的空格,替换
==
为===
…但更重要的是,尽可能使用 linter 工具自动修复代码。ESLint 就做得很好(带有
--fix
选项),而且与所有主流 IDE 完美集成,可以在保存时自动修复文件。还可以使用 Prettier,不过这款工具更注重格式化而不是静态检查,但处理后的结果基本相同。
下一步将介绍与 linter 工具一起使用的规则:
为你的 linter 定制现代化的规则
如果不知道你的代码需要什么样的规则,可以参考:
-
ELSE 技术周刊(2017.06.02期)
业界动态
Node 8 Released
Node 8 已经发布,带来一系列重大变化和更新,同时 NPM 也更新到 5.0.0。
What are the differences between the lockfiles of Yarn and npm 5?
NPM 5 重新设计 shrinkwrap,命名为锁包,跟 Yarn 的锁文件有什么区别呢?
TIOBE Index for May 2017
值得关注的是 Go 的排名,从前一年的第 42 名上升到第 16 名!
技术纵横
-
JavaScript 模块化现状
原文作者:Johannes Ewald @Jhnnns
原文链接:The state of JavaScript modules
已获原作者授权翻译及发布
ESM, CJS, UMD, AMD — 到底应该选择哪一个?
最近 在 twitter 上有很多关于 ES Module 现状的讨论,尤其是在 Node.js 上,他们计划引入新的文件扩展名
*.mjs
。人们有足够理由对此感到 担忧和不确定,因为这个话题异常复杂,接下来会尽力阐述清楚问题。来自远古的恐惧
大多数前端开发者应该还记得 Javascript 依赖管理的黑暗时期。那个时候,你需要把一个库复制粘贴到 vendor 文件夹,然后作为一个全局变量引入,要自己去按次序组合所有东西,可能还要管理命名空间。
在过去的那些年,我们能深刻体会到公共模块格式化和中央模块管理的价值。
在今天,不管是发布还是使用一个库都要容易得多,只需要使用
npm publish
和npm install
... -
JS/React 开发者的 Atom 终极配置
原文作者:Elad Ossadon
根据多年以来不断完善 Sublime Text 配置的经验,决定这次给 Atom 也来一个大改造。这个过程花费了好几个月的时间,但成果还是很卓有成效的,我现在非常满意这份配置。
这份清单将分为实用工具和 React 专用,并涉及到快捷键绑定。
实用工具
atom-beautify
可以在 Atom 中 美化 HTML,CSS,JavaScript,PHP,Python,Ruby,Java,C,C ++,C#,Objective-C,CoffeeScript,TypeScript,Coldfusion,SQL等。
快捷键:
⌃+⌥+B
prettier-atom
使用 Prettier 来格式化 JavaScript 代码,配有强大的 ESlint 集成。
快捷键:
⌃+⌥+F
atom-transpose
Atom...