代码工程化问题
admin
2024-02-06 02:56:01

前端工程化之——代码规范五部曲

vue创建的步骤
vue init webpack aaa
vue create bbb

react项目的创建步骤
create-react-app

.editorconfig

.editorconfig
.vscode

esLint

.eslintrc
.eslintignore

hushy+Lint-staged+Commitlint

"husky": {"hooks": {"pre-commit": "lint-staged" // 在代码commit前执行将加入到stage暂存区的文件进行检查,按照"lint-staged"中的规则进行检查"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"}
}

monorepo

幽灵依赖

即某个包没有在package.json 被依赖,但是用户却能够引用到这个包。

依赖分身

相同的依赖只会在全局 store 中安装一次。项目中的都是源文件的副本,几乎不占用任何空间,没有了依赖分身。

npm

yarn

Yarn发布于2016年10月,并在Github上迅速拥有了2.4万个Star。而npm只有1.2万个Star。这个项目由一些高级开发人员维护.
它提供了离线模式.
内部依赖平铺到最外面一层,解决了上述嵌套方案的缺陷。

pnpm Store + Links

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、软链接可以跨文件系统,硬链接不可以;

相关内容

热门资讯

西纳台子:德令哈,灵魂与自然同... 刊头题字: 谈生忠 一个有温度的公众号 每天发布·或诗或文 用作者的诗意·填补生活的空白 德令哈,蒙...
美丽吉安:初冬的井冈山挹翠湖公... 美丽吉安:初冬的井冈山挹翠湖公园风光迷人(摄/王伟) 美丽吉安:初冬的井冈山挹翠湖公园风光迷人(摄...
下一站,土耳其!广东文旅借全球... 深圳商报·读创客户端首席记者 袁静娴 近日,携程集团第八届全球合作伙伴峰会在土耳其伊斯坦布尔举行。广...
世界旅游联盟发布旅游促进乡村发... 潮新闻客户端 记者 周丰 11月18日至21日,“2025世界旅游联盟·湘湖对话”在杭州举办。本届“...
海报|江苏“破纪录”名场面:原... 2025年的吉尼斯世界纪录日定于11月20日。在“吉尼斯世界纪录日(GWR Day)”这一天,全世界...