13人参与 • 2025-02-13 • Node.js
通过自动化繁琐的设置和配置工作,帮助开发者快速启动新项目。常见的node脚手架工具包括yeoman、express generator、create react app等。
脚手架在软件开发中指的是一种自动化工具或脚本,用于快速创建和配置项目的基本结构和配置文件。脚手架工具可以帮助开发者快速启动新项目,减少手动配置和重复工作,提高开发效率。
根据预定义的模板生成项目的目录结构和初始文件
自动生成和更新项目的依赖文件(如package.json),并安装必要的依赖包
创建项目所需的各种配置文件(如.eslintrc, .gitignore, webpack.config.js等)。
自动生成常见的代码模块和样板代码,如路由、控制器、模型等。
通过交互式问答方式询问用户的偏好和需求,从而生成定制化的项目配置。
提供一些预定义的npm脚本或其他自动化脚本,用于常见的开发任务(如构建、测试、启动服务器等)。
npm init vite@latest
? select a framework: » - use arrow-keys. return to submit. vanilla > vue react preact lit svelte solid qwik others
? select a variant: » - use arrow-keys. return to submit. typescript > javascript customize with create-vue ↗ nuxt ↗
done. now run: cd vite-project npm install npm run dev
新建一个nojs
文件,然后创建bin/cli.js
在nojs
文件下初始化一个项目,然后一路回车
npm init
"name": "bincli",
bin/cli.js
中写入,
#! /usr/bin/env node
的作用:告诉操作系统用什么解释器来执行文件。#!
是 shebang 的标志,/usr/bin/env
是一个 unix 程序,它可以找到并运行指定的程序,node
指定要使用 node.js 解释器来执行脚本。
当在文件顶部加上这一行并使文件可执行,可以直接运行该文件,而无需在命令行中显式调用 node 命令。
#! /usr/bin/env node console.log("bincli");
npm link bincli
#! /usr/bin/env node // console.log("bincli"); console.log(process.argv);
获取
bincli
后面的参数--help
bincli --help
#! /usr/bin/env node if(process.argv[2]=='--help'){ console.log("获取命令参数"); }
npm i commander
#! /usr/bin/env node const { program } = require("commander"); program.parse(process.argv);
bincli --help
#! /usr/bin/env node const { program } = require("commander"); /* 使用 .option 方法定义一个命令行选项。 -f 是短选项,--framework 是长选项,<framework> 表示这个选项需要一个参数。 "设置框架" 是对这个选项的描述,用于帮助信息中显示。 */ program.option("-f --framwork <framwork>", "设置框架"); // 解析传递给脚本的命令行参数 program.parse(process.argv); console.log(`选定的框架是: ${program.framework}`);
bincli --help
命令cli.js
#! /usr/bin/env node const { program } = require("commander"); program.option("-f --framwork <framwork>", "设置框架"); program .command("create <project> [other...]") .alias("crt") .description("创建项目") .action((project, args) => { console.log(project); console.log(args); }); program.parse(process.argv);
bincli create xxx k gf l
命令bincli --help
命令lib/core/help.js
const myhelp = function (program) { program.option("-f --framwork <framwork>", "设置框架"); }; module.exports = myhelp;
lib/core/mycommander.js
const myaction = require("./action"); const mycommander = function (program) { program .command("create <project> [other...]") .alias("crt") .description("创建项目") .action(myaction); }; module.exports = mycommander;
lib/core/action.js
const myaction = (project, args) => { console.log(project); console.log(args); }; module.exports = myaction;
bin/cli.js
#! /usr/bin/env node const { program } = require("commander"); const myhelp = require("../lib/core/help"); myhelp(program); const mycommander = require("../lib/core/mycommander"); mycommander(program); program.parse(process.argv);
bincli
命令bincli
inquirer
包npm install inquirer
test/inquirer.js
文件var inquirer = require("inquirer"); // console.log(inquirer.default.prompt, "inquirer.prompt"); inquirer.default .prompt([ { type: "input", // 可以输入的类型 name: "username", message: "你的名字", }, ]) .then((answer) => { console.log(answer); });
node test/inquirer.js
命令node test/inquirer.js
lib/core/action.js
文件var inquirer = require("inquirer"); const myaction = (project, args) => { // console.log(project); // console.log(args); inquirer.default .prompt([ { type: "list", name: "framwork", choices: ["express", "koa", "egg"], message: "请选择你所使用的框架", }, ]) .then((answer) => { console.log(answer, "answer"); }); }; module.exports = myaction;
bincli create nodefm
命令bincli create nodefm
上下箭头
选择,空格
进行确认使用config.js来定义框架配置类型,可以通过直接在config.js里修改来控制变量
config.js
文件module.exports = { framwork: ["express", "koa", "egg"], };
lib/core/action.js
文件引入config文件var inquirer = require("inquirer"); var config = require("../../config"); const myaction = (project, args) => { // console.log(project); // console.log(args); inquirer.default .prompt([ { type: "list", name: "framwork", choices: config.framwork, message: "请选择你所使用的框架", }, ]) .then((answer) => { console.log(answer, "answer"); }); }; module.exports = myaction;
download-git-repo 是一个 node.js 模块,用于从 git 仓库中下载代码。通过命令行或者在 node.js 代码中进行下载操作。
npm install download-git-repo
test/download.js
const download = require("download-git-repo"); download( "direct:git@github.com:muying-zhao/muying-docs.git", "./xxx", { clone: true }, function (err) { if (err) { console.error("下载失败", err); } else { console.log("下载成功"); } } );
node test/download.js
命令node test/download.js
到此这篇关于node js开发环境的搭建的文章就介绍到这了,更多相关node js开发环境搭建内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论