最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 10行代码实现vite中的create-app

    正文概述 掘金(dream_99517)   2021-06-16   853

    1. 初始化项目

    // create-app是在vite仓库下作为monorepo中的一个子项目
    // 当我们执行yarn create @vitejs/app 的时候就是安装@vitejs/app
    // yarn create会完成两件事情 
    // 1.全局安装@vitejs/app(存在就更新为最新的)
    // 2.运行package.json中的bin 转发 <args>
    
    1. lerna init 初始化 执行yarn

    2. 创建子项目

    • lerna create @ishopee/vite
    • lerna create @ishopee/create-vite-app
    1. 在package.json中指明workspaces
    "workspaces": [
      "packages/*"
    ],
    
    1. 增加license文件(npm发包使用的)

    2. 在create-vite-app的package.json中配置bin字段

    "bin": {
      "create-vite-app": "index.js",
      // "cva": "index.js"
    },
    // 设置files
    "files": [
      "index.js",
      "template-*"
    ],
    
    1. 在create-vite-app项目中新建四个目录作为模板文件
    • template-react
    • template-vue
    • template-react-ts
    • template-vue-ts
    1. 安装依赖
    // minimist轻量的命令行参数的工具 command
    // prompts用户交互
    // kolorist轻量命令行输出工具 chalk
    yarn workspace @ishopee/create-vite-app add minimist prompts kolorist
    

    2. 10行代码实现index.js

    #!/usr/bin/env node
    
    async function init() {
      // 获取用户选择的结果
      let result = await prompts([]);
      // 项目名和当前的路径
      const root = path.join(cwd, targetDir);
      // 拿到用户选择的结果 framework是选择的框架 packageName项目名 variant选择特性(ts)
      const { framework, packageName, variant } = result;
      // 找到对应的模版目录 如果选择的是vue+ts就对应template-vue-ts
      const templateDir = path.join(__dirname, `template-${template}`);
      // 写入文件
      const write = (file, content) => {
        // package.json
        if (content) fs.writeFileSync(targetPath, content);
        else copy(path.join(templateDir, file), targetPath);
      };
      // 读取文件
      const files = fs.readdirSync(templateDir);
      // 遍历files写入文件 排除package.json
      for (const file of files.filter((f) => f !== "package.json")) {
        write(file);
      }
      // ok
    }
    

    3.发布npm包

    npm publish --access public
    lerna publish
    

    4.测试

    yarn create init  @ishopee/vite-app hello-world
    代码地址: https://gitee.com/ishopee/vite
    

    10行代码实现vite中的create-app


    起源地下载网 » 10行代码实现vite中的create-app

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元