babel-plugin-safe-member-expression
safe member expression
only auto enabled in BlockStatement
feature:
- Safer MemberExpression
- Safer CallExpression with MemberExpression
- Safer AssignmentExpression with MemberExpression
参数
match
默认值:/\/src.*\.jsx?/i
描述:只有被 match 中的文件路径才会进入插件转换
exclude
默认值:/\/node_modules.*\.jsx?/i
描述:被 exclude 匹配的路径不会进入插件转换
Example
Safer MemberExpression
In
const foo = hello'world';let hello = thisstate'foo'bar;
Out
var _object _object2 _object3; const foo = hello == null ? null : hello'world';let hello = _object = _object2 = _object3 = this == null ? null : _object3state == null ? null : _object2'foo' == null ? null : _objectbar;
Safer CallExpression with MemberExpression
In
const data = thisfoobar;
Out
var _object _object2 _object3; const data = _object = _object2 = _object3 = this == null ? null : _object3foo == null ? null : _object2bar == null ? null : _objectok ? _object : null;
Safer AssignmentExpression with MemberExpression
In
foo'bar' = xy;xyz = 'xxx';
Out
var _object; foo || foo = {}'bar' = x == null ? null : xy;_object = x || x = {}y || _objecty = {}z = 'xxx';
Installation
$ npm install babel-plugin-safe-member-expression
Usage
.babelrc
(Recommended)
Via .babelrc
Via CLI
$ babel --plugins safe-member-expression script.js
Via Node API
;