虚拟类型脚本国家预防机制 软件包
脚手架 TypeScript npm 包 使用此模板拖曳您的下一个库 .
[TIP] 正在寻找此模板的 JavaScript 版本吗 ? 尝试: Vite JavaScript 国家预防机制 软件包
开始
通过以下任何一种方式开始:
-
按: "使用此模板" 按钮
-
使用 GitHub 缩写 执行 :
gh repo create <name> --template="https://github.com/jasonsturges/vite-typescript-npm-package" -
简单
git clone,删除已存在的.git文件夹,并初始化新repo:git clone https://github.com/jasonsturges/vite-typescript-npm-package.git cd vite-typescript-npm-package rm -rf .git git init git add -A git commit -m "Initial commit"
没有包含软件包锁, 您也可以选择 npm 或者说 yarn。 。 。 .
记住要用 npm search <term> 避免为您的新软件包命名国家防范机制登记册中的冲突.
使用量
现有任务如下:
dev: 在监视模式下运行 Vite 以检测变化 - 所有模块被编译到dist/文件夹,以及所有类型滚动到 d.ts 声明文件start: 在主机模式下运行 Vite 以在此软件包内的本地开发环境中工作 - vite 主机index.html实时 HMR 更新build: 运行 Vite 来构建一个可分发的出品build:types: 运行 DTS 生成器,仅构建 d.ts 类型声明
将您的出口全部滚动到顶级指数. t , 以包含在可分配的构建中 .
例如,如果你有一个 utils/ 包含一个 arrayUtils.ts 文档.
/弧/利用/阵列Utils.ts:
export const distinct = <T>(array: T[] = []) => [...new Set(array)];
在顶层包含导出 index.ts 。 。 。 .
/src/index.ts: (中文(简体) )
// Main library exports - these are packaged in your distributable
export { distinct } from "./utils/arrayUtils"
发展
有多种发展战略,或是直接从图书馆工作,或是从一个相连的项目工作.
地方发展
Vite 设置了开发的主机模式,通过库直接更新 HMR start 剧本. 这使图书馆内部能够迅速发展,而不是与其他项目相连接.
使用 start 任务, Vite 主机 index.html 为地方发展环境服务。 此文件不包含在生产构建中 。 请注意,只指定从 index.ts 最终被捆绑入库.
例如,本模板包含一个React App,可以被Vue,Solid.js,Svelte等不同的框架所取代. .
对于UI项目,您不妨考虑添加工具,例如 故事书 通过运行一个 storybook 此软件包的脚本 .
项目开发
在向国家防范机制等登记册提交之前,将这一图书馆与其他应用项目一起运行 dev 脚本和链接包.
使用 dev 任务中,Vite 检测更改,并将所有模块编译到 dist/ 文件夹,以及所有类型滚动到 d.ts 声明文件.
在应用程序内测试您的库:
- 从这个图书馆: 运行
npm link或者说yarn link命令以注册软件包 - 从你的应用程序: 运行
npm link "mylib"或者说yarn link "mylib"命令在开发期间使用应用程序中的库
在你的应用程序里面 node_modules/ 文件夹,创建了库的同义链接.
发展清理
一旦开发完成, unlink 您的库和测试应用项目.
- 从你的应用程序: 运行
npm unlink "mylib"或者说yarn unlink "mylib"命令以删除库符号链接 - 从你的图书馆: 运行
npm unlink或者说yarn unlink命令取消软件包的注册
如果你错忘了 unlink你可以手动清理文物 yarn 或者说 npm。 。 。 .
对于 yarn,则 link 命令创建可从您的主目录删除的同义链接 :
~/.config/yarn/link
对于 npm,则 link 命令创建全局软件包,可以通过执行删除:
sudo npm rm --global "mylib"
使用命令确认您的 npm 全局软件包 :
npm ls --global --depth 0
对于您的应用, 只需重新安装依赖 清除任何被遗忘的关联软件包 。 这将去除 node_modules/ 文件夹.
发行
更新您的 package.json 到下一个版本编号,并标记一个发布.
确保您的软件包锁文件也通过运行安装来更新 。 npm, 这将保证锁文件有更新的版本编号 。 Yarn 不复制锁文件中的版本编号.
如果您正在向 GitHub 软件包等私人注册系统发布, 请更新您的 package.json 包括 publishConfig 财务报告和审定财务报表 repository数字 :
软件包。json:
"publishConfig": {
"registry": "https://npm.pkg.github.com/@MyOrg"
},
除非您正在使用GitHub Actions等连续的集成服务,请确保您 dist/ 文件夹已建立。 请注意: npm publish 将在可分发文件夹内运送任何物品.
对于干净的建筑,你可能想要安装 rimraf 软件包并添加一个 clean 或者说 prebuild 脚本到您的 package.json 将任何文物从您的 dist/ 文件夹。 或者,手动删除 dist/ 文件夹本身.
软件包。json:
"scripts": {
"clean": "rimraf dist"
}
在首次提交之前,请使用 npm search如果 npm 拒绝您的软件包名称,请更新您的软件包名称 package.json 并重新提交.
npm search <term>
一旦准备好向国家预防机制登记处提交你的包件,即通过 npm (或 yarn:
npm run build
确保正确的 npm 登录 :
npm login
将您的软件包提交注册 :
npm publish --access public
持续整合
为了与 GitHub 动作的持续集成,创建 .github/workflows/publish.yml数字 :
name: Publish Package to npmjs
on:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
registry-url: 'https://registry.npmjs.org'
- run: npm ci
- run: npm run build
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
等发行品被贴上标签后 就会用到你的建筑文物.
获取“ 自动” CI/ CD 访问符以绕过 2FA 无 在右上方选择您的配置图像,并选择“ Access Tokens”.
要向您的仓库添加秘密 :
- 从您的仓库中选择 设置
- 从 警卫 边栏,扩展 机密和变量 选择 行动
- 从 秘诀 选项卡,按 新寄存器密钥 添加
NPM_TOKEN键
为了给你的组织增加秘密:
- 从你的组织中选择 设置
- 从 警卫 边栏,扩展 机密和变量 选择 行动
- 从 秘诀 选项卡,按 新组织的秘密 添加
NPM_TOKEN键
确定其中之一 .npmrc 或者说 publishConfig 在你身边 package.json数字 :
软件包。json:
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/",
"scope": "username"
},
更多信息见: