esLint hushy+Lint-staged+Commitlint vscode prettier
配置react+typescript项目的lint,commit,prettier规范
前端工程化之——代码规范五部曲
vue创建的步骤
vue init webpack aaa
vue create bbb
react项目的创建步骤
create-react-app
.editorconfig
.editorconfig
.vscode
esLint
.eslintrc
.eslintignore
hushy+Lint-staged+Commitlint
"lint-staged": {
"*": [
"eden lint",
"git add"
]
},
"husky": {
"hooks": {
"pre-commit": "lint-staged" // 在代码commit前执行将加入到stage暂存区的文件进行检查,按照"lint-staged"中的规则进行检查
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
commitLint
hushy
这个用4版本的比较全一些,最新8版本需要解决的问题太多
4版本可以参考 https://zhuanlan.zhihu.com/p/513741947
8版本可以参考:https://zhuanlan.zhihu.com/p/366786798
https://blog.csdn.net/pagnzong/article/details/121688379
monorepo
幽灵依赖
即某个包没有在package.json 被依赖,但是用户却能够引用到这个包。
依赖分身
相同的依赖只会在全局 store 中安装一次。项目中的都是源文件的副本,几乎不占用任何空间,没有了依赖分身。
npm
yarn
Yarn发布于2016年10月,并在Github上迅速拥有了2.4万个Star。而npm只有1.2万个Star。这个项目由一些高级开发人员维护.
它提供了离线模式.
内部依赖平铺到最外面一层,解决了上述嵌套方案的缺陷。
pnpm Store + Links
pnpm学习
store: 将包安装在系统的全局 store 中,依赖的每个版本只会在系统中安装一次。
Links:
Hard link:
Symbolic link:
pnpm 的安装速度在大多数场景都比 npm 和 yarn 快 2 倍,节省的磁盘空间也更多。
pnpm=>解决问题:
依赖结构的不确定性。
扁平化算法本身的复杂性很高,耗时较长。
幽灵依赖
依赖分身
pnpm=>弊端:
由于 pnpm 创建的 node_modules 依赖软链接,因此在不支持软链接的环境中,无法使用pnpm,比如 Electron 应用。
因为依赖源文件是安装在 store 中,调试依赖或 patch-package 给依赖打补丁也不太方便,可能会影响其他项目。
因为使用 PnP 不会再有 node_modules 了,但是 Webpack,Babel 等各种前端工具都依赖 node_modules。虽然很多工具比如 pnp-webpack-plugin 已经在解决了,但难免会有兼容性风险。
PnP 自建了依赖解析器,所有的依赖引用都必须由解析器执行,因此只能通过 yarn 命令来执行 node 脚本。
linux 硬链接和软链接的区别和联系
1、软链接以路径的形式存在,硬链接以文件副本的形式存在;
2、软链接可以跨文件系统,硬链接不可以;