您的位置:首页 > 文旅 > 旅游 > 新冠疫情最新情况最新症状_云南人才网_深圳推广不动产可视化查询_百度搜索数据

新冠疫情最新情况最新症状_云南人才网_深圳推广不动产可视化查询_百度搜索数据

2025/4/26 1:47:57 来源:https://blog.csdn.net/u010263423/article/details/147521425  浏览:    关键词:新冠疫情最新情况最新症状_云南人才网_深圳推广不动产可视化查询_百度搜索数据
新冠疫情最新情况最新症状_云南人才网_深圳推广不动产可视化查询_百度搜索数据

效果

在这里插入图片描述

步骤

首先初始化一个空的项目,然后安装一些依赖

npm init -y
npm install inquirer execa chalk ora

至于这些依赖是干嘛的,如下图所示:
在这里插入图片描述

然后再 package.json 中补充一个 bin

在这里插入图片描述

然后再根目录下新建一个 index.js , 其中的内容如下

#!/usr/bin/env node
import inquirer from 'inquirer'
import chalk from 'chalk'
import ora from 'ora'
import { createProject } from './utils/create.js'console.log(chalk.cyanBright('\n✨ Welcome to create-vueNew CLI'))const { projectName, template } = await inquirer.prompt([{type: 'input',name: 'projectName',message: 'Project name:',default: 'vueNew-app'},{type: 'list',name: 'template',message: 'Select a template:',choices: ['vue', 'vue-ts']}
])await createProject(projectName, template)

createProject 这个工具的内容如下

import { fileURLToPath } from 'url'
import { dirname } from 'path'
import path from 'path' // 确保引入了 path 模块
import ora from 'ora'
import ncp from 'ncp'const __filename = fileURLToPath(import.meta.url)
const __dirname = dirname(__filename)export async function createProject(name, template) {const spinner = ora(`Copying ${template} template...`).start()const templatePath = path.join(__dirname, `../templates/${template}`)const targetPath = path.resolve(process.cwd(), name)try {// 使用 ncp 来复制模板文件夹ncp.ncp(templatePath, targetPath, (err) => {if (err) {spinner.fail('Failed to copy template')console.error(err)return}spinner.succeed('Project created!')console.log(`\nNext steps:`)console.log(`  cd ${name}`)console.log(`  npm install`)console.log(`  npm run dev`)})} catch (err) {spinner.fail('Failed to copy template')console.error(err)}
}

然后再模拟几个 vue 的模板 ,待会儿第二步克隆的时候就是复制这里的文件

在这里插入图片描述

本地的 CLI 工具链接到全局环境

在项目目录下运行了 npm link
npm link 会把本地的 CLI 工具链接到全局环境,这样你就可以在任何地方通过命令行运行 create-vueNew

测试

在随便一个文件夹下执行 create-vueNew 就会开始执行命令了

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com