Javascript 创建自定义CLI以安装npm依赖项

Javascript 创建自定义CLI以安装npm依赖项,javascript,node.js,npm,command-line-interface,Javascript,Node.js,Npm,Command Line Interface,我想创建一个Node CLI,以基于Node、Typescript、Jest、Express和TSLint生成新项目。基本上,这个CLI应该创建一个新的项目文件夹,安装所有依赖项,并从npm、tsc和jest调用依赖项--init命令。它应该对配置文件进行一些更改,并为新项目创建一些“hello world虚拟文件” 一个很好的例子是 因此,我知道如何创建CLI应用程序,但当用户调用 myCliTool创建用户项目名 那么我如何为他安装npm依赖项呢?Node本身不知道npm,我认为附带预生成的

我想创建一个Node CLI,以基于Node、Typescript、Jest、Express和TSLint生成新项目。基本上,这个CLI应该创建一个新的项目文件夹,安装所有依赖项,并从npm、tsc和jest调用
依赖项--init
命令。它应该对配置文件进行一些更改,并为新项目创建一些“hello world虚拟文件”

一个很好的例子是

因此,我知道如何创建CLI应用程序,但当用户调用

myCliTool创建用户项目名


那么我如何为他安装npm依赖项呢?Node本身不知道npm,我认为附带预生成的文件并将它们复制到目标文件夹中是个坏主意。

您可以通过脚本命令完成这一点,就像在脚本命令中一样,当用户想要创建项目时,您可以第一次运行npm安装

下面是一个例子:

"scripts": {
    "start": "if-env NODE_ENV=production && npm run start:prod || npm run start:dev",
    "start:dev": "set NODE_ENV=development && nodemon app.js",
    "start:prod": "export NODE_ENV=test && npm install && nodemon server/app.js",
    "lint": "eslint --ignore-path .gitignore .",
    "test": "export NODE_ENV=test && mocha **/*.test.js",
    "test-watch": "nodemon --exec 'npm test'"
  },

您可以通过脚本命令来实现这一点,就像在脚本命令中一样,当用户想要创建项目时,您可以第一次运行npm安装

下面是一个例子:

"scripts": {
    "start": "if-env NODE_ENV=production && npm run start:prod || npm run start:dev",
    "start:dev": "set NODE_ENV=development && nodemon app.js",
    "start:prod": "export NODE_ENV=test && npm install && nodemon server/app.js",
    "lint": "eslint --ignore-path .gitignore .",
    "test": "export NODE_ENV=test && mocha **/*.test.js",
    "test-watch": "nodemon --exec 'npm test'"
  },

对不起,请您再解释一下,依赖项是如何安装的?我的意思是,当我为用户生成一个
package.json
时,我必须知道依赖项的当前版本,不是吗?那
npm install
是如何被激发的呢?是的,package.json将拥有所有信息,当脚本运行时,它将获得依赖项并像我们安装项目依赖项时使用npm install那样进行安装。但是我如何激发
npm install
,因为用户不需要激发它。我知道的CLI会在运行安装程序时安装依赖项:)像这样
export NODE_ENV=test&&npm install&&nodemon server/app.js
在此编写的npm install run命令将首先运行,然后它将执行app.js。对不起,请您再解释一下,依赖项是如何安装的?我的意思是,当我为用户生成一个
package.json
时,我必须知道依赖项的当前版本,不是吗?那
npm install
是如何被激发的呢?是的,package.json将拥有所有信息,当脚本运行时,它将获得依赖项并像我们安装项目依赖项时使用npm install那样进行安装。但是我如何激发
npm install
,因为用户不需要激发它。我知道的CLI会在运行安装程序时安装依赖项:)像这样
export-NODE_-ENV=test&&npm-install&&nodemon-server/app.js
npm-install-run命令将首先运行,然后它将执行app.jsNode.js知道npm为“npm与NODE.js一起安装”。只需从脚本启动
npm install
命令即可。@TGrif谢谢。你说的
script
是指json包中的命令吗?但是我如何在运行时启动install命令呢?啊,我明白了,我可以直接在脚本中执行
childProcess.execSync(…)
No。您的脚本使用什么语言?我使用Typescript/JavascriptNode.js将npm理解为“npm随Node.js一起安装”。只需从脚本启动
npm install
命令即可。@TGrif谢谢。你说的
script
是指json包中的命令吗?但是我如何在运行时启动install命令呢?啊,我明白了,我可以直接在脚本中执行
childProcess.execSync(…)
No。你的脚本使用什么语言?我使用Typescript/Javascript