浅谈Webpack自动化构建实践指南(5)
此时,webapck loader处理css时不能添加exclude: /node_modules/。
其他插件
我们还可以根据项目实际需求和爱好自定义安装插件,更多信息查看官方插件文档。
在这里推荐一款babel-pliugin-transform-s2015-classes插件拓展以实现JavaScript内置class对象的extends继承特性,参考文档ES2015 classes transform。
yarn add --dev babel-plugin-transform-es2015-classes
在.babelrc文件内添加plugins内容:
{ "plugins": [ "transform-runtime", "transform-es2015-classes", [ "import", { "style": "css", "libraryDirectory": "", "libraryName": "material-ui" } ] ] }
语法检测(Eslint)
为了保证代码质量,统一代码风格是很重要的,而只靠团队口头约定明显是不能尽如人意,所以通常需要在自动化构建层面进行代码语法检测,有很多语法检测工具如jslint,eslint,目前使用率最高的要数eslint了,所以我们的项目也引入eslint,首先安装依赖:
yarn add --dev eslint
更多细节参考配置文档,下文简要介绍主要。
配置文件
然后在项目根目录下建立eslint配置文件.eslintrc,内容是一个对象:
{}
解析器(parser)
另外,ESLint 默认使用Espree作为其解析器,你可以在配置文件中指定一个不同的解析器,如babel-eslint,esprima等,我们项目使用babel-eslint:
yarn add --dev babel-eslint
在配置文件内添加parser属性:
{ "parser": "babel-eslint" }
eslint-plugin-babel
eslint还支持可选安装插件,拓展eslint,如eslint-plugin-babel,该插件与babel-eslint协作,使得eslint可以更好的与babel同时工作,更多请查看参考文档。
yarn add --dev eslint-plugin-babel
在配置文件添加声明:
{ "plugins": [ "babel" ], }
aslant-plugin-react
eslint默认是检测JavaScript语言语法的,而对于React/JSX这类包含其自定义语法和语法糖的框架而言,需要另外拓展安装插件才能和eslint结合使用,所以使用eslint检测React特定语法需要安装eslint-plugin-react插件:
yarn add --dev eslint-plugin-react
添加配置文件:
{ "plugins": [ "babel", "react" ] }
拓展(extends)
除了自定义语法检查规则外,我们可以使用Eslint提供的集成拓展包,使用共享的语法检测配置对象,如eslint-config-standard和eslint-config-standard-react: