对moment、lint-staged、jsinspect 做优化
fondadam opened this issue · 0 comments
fondadam commented
moment
- 若不需要任何locale, 可以这么配置webpack
config.plugins.push(new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/))
- 若仅需要
zh-cn
,可以这么配置webpack
config.plugins.push(new webpack.ContextReplacementPlugin(/moment[/\\]locale$/, /zh-cn/))
lint-staged
之前我们项目的eslint都是直接全局检查js的,不管文件是否改变过。
举个例子,假如我们只修改了A.js文件,但在precommit的时候会lint所有的.js文件,造成不必要的时间浪费,所以现在引入了lint-staged,只lint改动的文件。
具体配置看package.json
文件
{
"scripts": {
"precommit": "lint-staged"
},
"lint-staged": {
"./js/**/*.js": ["eslint --cache --fix", "git add"]
}
}
jsinspect
我们在写需求初期,有时候会对某些代码进行copy and paste,而jsinspect就是帮你检测代码中有没有重复的代码,提示你可以抽象出来。
jsinspect 主要是利用 babylon 对于 JavaScript 或者 JSX 代码构建 AST 语法树,根据不同的 AST 节点类型标记相似结构的代码块。
jsinspect 默认不对项目中的node_modules
和bower_components
做检查。
具体配置看package.json
文件
{
"scripts": {
"jsinspect": "./node_modules/jsinspect/bin/jsinspect ./js/**/*.js"
}
}