ps:
提交项目代码前先安装
npm install -g commitizen git-cz
提交(发布)规范与设置changlog可以参考: https://github.com/lyszxm/changelog-standard === Git Commit 规范及 CHANGELOG 定制生成 - 掘金 (juejin.cn) 通过 standard version 自动化升级版本号、生成 changelog 及 tag standard-version
husky添加commitlint: ps事项 (最好复制黏贴到对应的文件中):
echo 'npx --no-install commitlint --edit $1' > ./.husky/commit-msg
(注意如果直接放在终端执行的话需要有单引号包裹字符串)
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit $1'
window下好像用这个可以(同时也与husky版本高低有关) husky官网这个命令看起来是用于在提交代码前使用 commitlint 进行提交信息的编辑。commitlint 是一个用于规范化提交信息格式的工具,它能够帮助团队确保提交信息的一致性和可读性。 让我解释一下这个命令的各个部分: npx: 这是一个 npm 提供的一个工具,用于在不安装全局依赖的情况下执行本地安装的包。这样可以确保使用项目中安装的 commitlint 版本。 --no-install: 这个选项告诉 npx 不要安装任何新的包,而是使用项目中已经安装的包来执行命令。 commitlint: 这是要执行的命令,实际上是通过 npx 来调用 commitlint 工具。 --edit $1: 这个部分可能是用来打开提交信息的编辑界面,并将编辑后的消息传递给 $1 变量。通常情况下,$1 代表提交信息文件,这样可以在编辑后将修改后的消息传递给提交流程。 综合起来,这个命令看起来是为了在提交代码前使用 commitlint 对提交信息进行编辑,以确保符合规范。
rollup 支持的打包文件的格式(format)有 amd, cjs, es\esm, iife, umd。其中,amd 为 AMD 标准,cjs 为 CommonJS 标准,esm\es 为 ES 模块标准,iife 为立即调用函数, umd 同时支持 amd、cjs 和 iife。
-
amd
– 异步模块加载,适用于 RequireJS 等模块加载器 -
cjs
– CommonJS,适用于 Node 环境和其他打包工具(别名:commonjs
) -
es
– 将 bundle 保留为 ES 模块文件,适用于其他打包工具,以及支持<script type=module>
标签的浏览器。(别名:esm
,module
) -
iife
– 自执行函数,适用于<script>
标签(如果你想为你的应用程序创建 bundle,那么你可能会使用它)。iife
表示“自执行 函数表达式” -
umd
– 通用模块定义规范,同时支持amd
,cjs
和iife
-
system
– SystemJS 模块加载器的原生格式(别名:systemjs
)
UMD(Universal Module Definition)是一种用于创建可在不同模块系统中运行的 JavaScript 模块的通用模式。通常,UMD 可以同时支持 AMD、CommonJS(CJS)和全局(IIFE)这三种模块系统
对于 ES Modules(ESM),UMD 本身并不直接支持。ES Modules 是 ECMAScript 2015 引入的官方标准模块系统,用于在现代浏览器和 Node.js 中进行模块化开发。UMD 通常不直接包含对 ES Modules 的支持,因为 ES Modules 与其它模块系统有一些不同的语法和行为。 rollup能输出哪6种格式😥?
-
具体来说,
"serve": "rollup -c -w"
中:-
"serve"
是该 npm 命令的名称,可以通过在命令行中运行npm run serve
来执行后面的命令。 -
"rollup -c -w"
是实际执行的命令。其中,rollup
表示执行 Rollup 命令,-c
参数告诉 Rollup 使用配置文件来进行打包。-w
参数表示启动 Rollup 的监听模式,在源代码发生变化时自动重新构建项目并更新浏览器中的页面。因此,当你在命令行中运行
npm run serve
时,实际上会执行rollup -c -w
命令,启动 Rollup 的监听模式,监视源代码文件的变化并自动重新构建项目。这样可以方便地进行前端开发,实现热更新,并且不需要手动运行构建命令。
-
- [ ] 有待补充为什么
"exports": {
".": {
"types": "./dist/cjs/types/src/index.d.ts", // 写成这种就有用
"import": {
// "types": "./dist/es/types/src/index.d.ts",(这里写好像是不能进行ts的提示,有待补充为什么)
"default": "./dist/es/index.js"
},
"require": {
"default": "./dist/cjs/index.js"
}
},
"./utils": {
"types": "./dist/cjs/types/src/utils/index.d.ts",
"import": {
"default": "./dist/es/utils/index.js"
},
"require": {
"default": "./dist/cjs/utils/index.js"
}
},
-
pnpm publish --access public
发包前 ,需要设置为npm源 :npm config set registry https://registry.npmjs.org/
,发完之后即可切换回淘宝源:npm config set registry https://registry.npmmirror.com/
Rollup 实践案例【1】:从入门到组件类库的实践过程 - 掘金 (juejin.cn)
(推荐阅读) 一文入门rollup🪀!13组demo带你轻松驾驭 - 掘金 (juejin.cn)
30分钟搞懂Rollup+Typescript工程构建 - 掘金 (juejin.cn)
【实战篇】最详细的Rollup打包项目教程 - 掘金 (juejin.cn)