nodeJs——开发自己的脚手架

2022-11-21 12:16:44 浏览数 (1)

简易版脚手架的搭建

首先两个Q&A

1.脚手架的基本能力有哪些?

答:全局命令执行能力

命令行交互功能

项目初始化代码下载能力

2.如何实现一个自己的脚手架工具

答:创建自定义全局命令

命令参数接收处理

终端交互

下载远程项目代码

项目初始化完成提示

开始操作

第一,在新建工程中新建文件夹bin,并且创建xxx.js文件

如图所示:

第二,打开命令行窗口输入

代码语言:javascript复制
npm init

根据提示完成命令行的输入

然后会生成一个package.json的文件

文件里的内容:

代码语言:javascript复制
{
  "name": "tomcli",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "bin": {
    "tomcli": "bin/cli.js"
  },
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "",
  "license": "ISC"
}


没错 ,主要就是第6行的bin,有了我们自定义的文件

第四,然后我们再去自定义我们的bin文件夹里的cli.js文件

代码语言:javascript复制
#! /usr/bin/env node

console.log('tomcli');

第一行是一定要写的,这些做的目的是指定了环境

就像是我们在linux系统写bash脚本一样

代码语言:javascript复制
#!
这个符号在Linux或者Unix中叫做:shebang,我们来看下维基百科的解释,原文如下,简单说就是在一个脚本前面的#!
这两个符号就叫shebang,是不是感觉说了相当于没有说

In computing, a shebang is the character sequence consisting of the characters number sign and exclamation mark (#!) at the beginning of a script. 维基百科

/usr/bin/env node到底是什么意思呢?

维基百科说了带有#!就是代表此文件可以当做脚本运行,那么怎么运行呢,运行什么呢 /usr/bin/env node这行的意思就是用node来执行此文件,node怎么来呢,就去用户(usr)的安装根目录(bin)下的env环境变量中去找,简单的说就是如果在windows上面,就去安装node的bin目录去找node执行器,一般我们都放在环境变量中,所以就能正确找到node来执行

所以就是写了这句话就可以用node去执行下面的语句了

第五,在项目的命令行里输入

代码语言:javascript复制
npm link

用处是:

代码语言:javascript复制
npm link 操作会在项目的 node_modules 目录下创建一个 module1的超链接(类似 Windows 的快捷方式),链接到 project_npmlink/module1。

生成的虚拟包名会根据module1的package.json进行指定。

第六查看是否链接成功

打开node的global目录,因为每个人的习惯和安装步骤各有不同,所以这里每个人的global目录不一样

我们可以打开这个文件看一眼

看来是没问题

第七,我们现在就可以在任意的命令行里输入tomcli然后会输出tomcli

然后

然后

然后

就报错了

从各大知名debug网站搜了一晚上也没有解决方案

今天早起来使用git命令行:

使用windows的powershell就没办法,一直报错。

但是也算是搭建了一个简易的脚手架。

当然进阶玩法有很多,比如交互命令,从git下载代码,显示进度条等等

0 人点赞