You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建并发布支持npm create/yarn create的初始化脚本?

如何创建并发布类似npm create xxx的初始化脚本

核心前提:包命名规则

要让npm create xxx能识别你的脚本,npm包名必须以create-开头,比如create-my-app——用户执行npm create my-app时,npm会自动找到create-my-app这个包并运行它的可执行脚本。

步骤1:初始化npm包

  • 创建空文件夹,执行npm init -y生成package.json
  • 重点配置以下字段:
    • name:必须为create-xxx格式(比如create-my-starter)
    • bin:指定可执行脚本的入口路径,示例:
      "bin": {
        "create-my-starter": "./index.js"
      }
      
      这里的键名要和包名完全一致,确保系统能找到执行入口
    • 若使用ES模块,添加"type": "module"到package.json

步骤2:编写可执行脚本

  • 入口文件(比如index.js)开头必须添加shebang,告诉系统用Node.js执行:
    #!/usr/bin/env node
    
  • 脚本逻辑示例(可根据需求扩展):
    #!/usr/bin/env node
    
    // 处理命令行参数
    const projectName = process.argv[2] || 'my-default-project';
    const useTypescript = process.argv.includes('--typescript');
    
    console.log(`正在创建项目:${projectName}`);
    if (useTypescript) {
      console.log('启用TypeScript支持');
    }
    
    // 后续可添加拉取模板、初始化依赖、生成配置等逻辑
    // 比如用download-git-repo拉取GitHub模板,或fs模块生成文件
    
  • 若需要复杂的参数处理,可使用commander这类第三方库,记得执行npm install commander并添加到dependencies

步骤3:本地测试

  • 在包目录执行npm link,将包链接到全局环境
  • 现在可以直接执行npm create my-starter或create-my-starter测试脚本,比如:
    npm create my-starter my-test-project -- --typescript
    

步骤4:发布到npm

  • 确保你有npm账号,无账号则执行npm adduser完成注册
  • 执行npm publish发布包,注意包名不能与npm现有包重复

关键注意事项

  • 脚本需处理异常场景:比如项目已存在、网络请求失败、用户权限不足等
  • 若依赖第三方工具,务必将其添加到dependencies而非devDependencies,确保用户安装时能获取到
  • 可在package.json中添加keywords(如create-app, boilerplate)提升包的搜索曝光度

内容的提问来源于stack exchange,提问作者Fabio Rotondo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 15:35:39