此plugin
为了按需引入库里面的文件和内容
此插件参考babel-plugin-import相关思路,在使用babel-plugin-import
中有一些无法解决的问题,这里用另一种思路去解决问题,解决打包过程中一些问题。
- 应用
cdn
资源时候可以按需引入样式文件 - 不改写代码内部变量,只重新定义了引入变量
在babel-plugin-import
中,作者重写了引入内容,以新变量代替了原来引入的内容,并且在后续代码中修改了使用到的变量为修改后的名字,效果如下
import { Button } from 'antd';
ReactDOM.render(<Button>xxxx</Button>);
↓ ↓ ↓ ↓ ↓ ↓
var _button = require('antd/lib/button');
ReactDOM.render(<_button>xxxx</_button>);
本插件只改变import
相关内容,用相同变量名覆盖之前引入的内容,不该写后续代码逻辑,转换后代码如下
import Button from 'antd/lib/button';
ReactDOM.render(<Button>xxxx</Button>);
而且相关配置支持只引入样式文件,不该写其他内容,满足了cdn
引入相关资源又自定义样式的业务需求。
import { Button } from 'antd';
ReactDOM.render(<Button>xxxx</Button>);
↓ ↓ ↓ ↓ ↓ ↓
import Button from 'antd/lib/button';
ReactDOM.render(<Button>xxxx</Button>);
import { Button } from 'antd';
ReactDOM.render(<Button>xxxx</Button>);
↓ ↓ ↓ ↓ ↓ ↓
import 'antd/lib/button/style';
import Button from 'antd/lib/button';
ReactDOM.render(<Button>xxxx</Button>);
npm install babel-plugin-import-separation --save-dev
在babelrc
或者babel-loader
中写入配置
{
"plugins": [["import-separation", options]]
}
{
"plugins": [
["import-separation",
[ {...option1}, {...option2} ]
]
]
}
{
"plugins": [
["import-separation", options1, 'antd'],
["import-separation", options2, 'lodash']
]
}