1.0.0-alpha.2 • Published 2 years ago

create-unlimited-blade-works v1.0.0-alpha.2

Weekly downloads
-
License
-
Repository
github
Last release
2 years ago

Unlimited Blade Works

NPM version NPM downloads js-standard-style standard-readme compliant Status

此身為劍所成

身若鋼鐵 心如琉璃

縱橫無數戰場而不敗

然,此生毫無意義

其常立於劍丘之巔,獨醉於勝利之中

未曾一次敗退

未嘗得一知己

故如我祈求

"無限劍制"

无限剑制是一个可以创建任何你需要的东西的脚手架,无需任何外部配置。

对于 Unlimited Blade Works 的支持情况:

  • 操作系统:macOS,Windows 以及 Linux
  • 包管理器:npm,yarn,pnpm(不支持 yarn 2 aka yarn berry,原因见 常见问题列表
  • node版本:>=10(以 package.json 中的 engines.node 字段为准)

✨ 功能特性

  • 无需任何配置,一键快速创建任意场景的项目。
  • 支持智能选择可用的注册源,保证安装流程的稳定性。
  • 自动拉取 git 远程仓库。
  • 支持缓存以及离线安装模式。
  • 安全的写入策略。

🏁 快速上手

npx create-unlimited-blade-works

为了永远使用最新的版本,不要通过全局安装来使用。如果你之前全局安装过 create-unlimited-blade-works,我们推荐你使用下面的命令卸载全局的安装:

  • npm: npm uninstall -g create-unlimited-blade-works
  • yarn: yarn global remove create-unlimited-blade-works
  • pnpm: pnpm remove -g create-unlimited-blade-works

🌱 开始创建

你可以使用下面任意的方式来创建项目

npx

npx create-unlimited-blade-works

npx 是 npm 版本 >=5.2 后开箱自带的包运行工具,请升级 npm 以满足最低 >= 5.2。

npm

npm init unlimited-blade-works

npm 版本 >= 6 时 npm init <initializer> 可用。

yarn

 yarn create unlimited-blade-works

Yarn 版本 >= 0.25 时 yarn create <starter-kit-package> 可用。

pnpm

pnpm init @unlimited-blade-works

npm 版本 >= 6 时 pnpm init <initializer> 可用。

⚙️ 参数选项

--info

  • 参数类型:boolean
  • 默认值:false
  • 描述:仅输出环境调试信息,不执行初始化。
  • 示例:
    npx create-unlimited-blade-works --info

--clean

  • 参数类型:boolean
  • 默认值:false
  • 描述:仅清理本地缓存数据,不执行初始化。
  • 示例:
    npx create-unlimited-blade-works --clean

--registry <registry>

  • 参数类型:string
  • 默认值:无默认值,如果没有指定注册源,则启用注册源自动选择模式,详情见参数 --auto-registry
  • 描述:设置初始化项目过程中使用的注册源。
  • 示例

    npx create-unlimited-blade-works --registry registry.npm.taobao.org

--root-directory <rootDirectory>

  • 参数类型:string
  • 默认值: process.cwd() — 脚手架运行时所处目录
  • 描述:设置项目初始化的根目录, 为绝对路径。
  • 示例:
    npx create-unlimited-blade-works --root-directory /apps

--remote-repo <remoteRepo>

  • 参数类型:string
  • 默认值:无默认值。
  • 描述:设置项目的 git 远程仓库地址。
  • 示例:
    npx create-unlimited-blade-works --remote-repo https://github.com/NNNaix/cyber-bones-cli-web-app-example

--offline

  • 参数类型:boolean
  • 默认值:false
  • 描述:脚手架默认基于远程注册源 registry 获取数据,为 true 时启用离线模式,将使用本地缓存数据来替代远程注册源。
  • 示例:
    npx create-unlimited-blade-works --offline

--override

  • 参数类型:boolean
  • 默认值:false
  • 描述:脚手架默认使用安全的写入策略,如果项目初始化目录存在白名单以外的文件则警告并终止写入,为 true 时启用覆写模式,会强制覆盖掉和模板产生冲突的文件。
  • 示例:
    npx create-unlimited-blade-works --override

--auto-registry

  • 参数类型:boolean
  • 默认值:false
  • 描述:启用注册源自动选择模式,会基于内置注册源列表自动检测可用的注册源进行初始化(作用优先级低于 --registry),内置注册源有:
    • registry.npmjs.org
    • registry.npm.taobao.org
    • registry.yarnpkg.com
  • 示例:

    npx create-unlimited-blade-works --auto-registry

📖 开发者指南

查看 开发者指南

🗺 路线图

  • 检测工程模板中的包管理器类型,并尝试自动安装依赖。
  • 增加基于 PGP signature 项目模板完整性校验机制,虽然 TCP 可以保证网络传输中数据的完整性,但我们获取的包仍可能各种风险,更多规范细节请见 W3C - Subresource Integrity。(优先级不高,作为边缘场景)

🚨 常见问题

查看 常见问题列表

🎨 设计理念

"删繁就简,道法自然"

  • 至简:去除繁复,保留核心,不管是模板还是脚手架的设计都遵循该理念,最大限度降低开发者的上手和使用成本。
  • 自然
    • 技术生态:遵循 npm 生态的初始化规范,尊重开发模板的技术栈自由,这是所谓技术生态的自然。
    • 心流:脚手架应当最大限度帮开发者做好一切原本开发者不需要也不应该关心的决策和辅助,这是所谓心流的自然。

🎉 知识

下面是给予了 Unlimited Blade Works 灵感的项目。