阅读本文,你将学到: 1. 熟悉 vuejs 发布流程 2. 学会调试 nodejs 代码 3. 动手优化公司项目发布流程 环境准备之前,我们先预览下vuejs的发布流程。...3.1.1 minimist 命令行参数解析 minimist[7] 简单说,这个库,就是解析命令行参数的。看例子,我们比较容易看懂传参和解析结果。.../.bin/ 目录下的命令,整个文件就用了一次。...bin('jest') 相当于在命令终端,项目根目录 运行 ./node_modules/.bin/jest 命令。...// git push 所有改动到 远程 - github await runIfNotDry('git', ['push']) // yarn run release --dry // 如果传了这个参数则输出
为什么写这篇文章 很多 Node.js 开发者,都知道有 package.json 这个文件,也多少都了解一些 npm 知识,但是可能没有系统的学习过,这部分的知识对于开发一个 cli 工具,发布自己的...说到脚本传入参数,需要再次提到前面说的 pacakge.json 中的 bin 字段,bin 字段指定了各个内部命令对应的可执行文件的位置。...'] 再列举几个传参可能有的方式 npm run serve --params // 参数params将转化成process.env.npm_config_params = true npm run...params参数 npm run serve -- --params // 将--params参数添加到process.env.argv数组中 npm run serve params // 将params...在本地开发的模块包的时候,可以使用 npm link 调试,将模块链接到对应的运行项目中去,方便地对模块进行调试和测试。
在GitHub上建立仓库,然后通过git clone命令将代码克隆到本地。 $ git clone xxx$ npm init -y package.json文件为模块的描述文件,非常重要。...根据具体的业务特点,将前端开发流程、技术、工具、经验等规范化和标准化,可以最大限度地提高前端开发工程师的开发效率,降低技术选型难度和前后端联合调试的沟通成本。...bin字段是用来配置CLI命令名称和具体执行逻辑的脚本文件,比如上面的hello就是模块需要提供的CLI命令名称,它对应的Node.js脚本文件是bin/cli.js。...主要办法是解析process.argv文件,它会返回由命令行脚本的各个参数组成的数组,具体代码如下。 #!...npm start:将当前npm发布到npmjs.org上。 npm test:测试代码,应避免重复输入。 无论从语义还是便利性上,重写常见命令都是不错的选择。
在 Node.js 中发现可以通过 process.argv 来获取到用户在命令行中输入的参数,这个参数是一个数组,第一个是 Node.js 的路径,第二个是当前执行的文件路径。...然后呢,我们要调用 program.version() 方法,将版本号传递给这个方法就可以了。...package.json 是我们项目的配置文件,里面有一个 version 字段,我们可以将这个字段抽取出来,放到一个单独的文件中,然后在 bin/index.js 中引入这个文件,这样就可以实现版本号的统一管理了...在 bin 目录下新建一个 const.js 文件,然后将 package.json 中的 version 字段抽取出来,放到 const.js 文件中,代码如下:const { version } =.../package.json');module.exports = { version,};然后在 bin/index.js 中引入这个文件,代码如下:const { version } = require
然后,我们将学习如何通过构建一个命令行工具来使用zx的功能,帮助我们为新的Node.js项目引导配置。...一个解析命令行参数的库。然后它们在argv对象下被暴露出来。 fetch[7]。Fetch API的Node.js实现。我们可以用它来进行HTTP请求。 fs-extra[8]。.../usr/bin/env node 然后,我们添加一些代码,使用zx来运行命令。 在下面的代码中,我们运行命令执行ls程序。ls程序将列出当前工作目录(脚本所在的目录)中的文件。...我们现在要给脚本添加一个 --directory命令行参数。 zx内置了minimist[11]包,它能够解析传递给脚本的任何命令行参数。...Node.js生态系统正在逐步采用ES模块,这在客户端JavaScript中是很常见的。当事情处于过渡阶段时,我们需要决定我们的Node.js项目默认使用CJS模块还是ESM模块。
在Node.js中,我们可以通过命令行工具来执行各种操作,下面我将介绍一些常用的Node.js命令。# 一:node命令node是Node.js的主要命令,用于运行JavaScript文件。...npm init:初始化一个新的Node.js项目,并创建一个package.json文件。...# 三:npm命令npx是npm 5.2.0以后版本提供的一个命令,它允许你直接从命令行运行在node_modules/.bin目录下的命令,而无需全局安装这些命令。...# 七 :调试命令Node.js提供了内置的调试器,可以使用命令行参数进行调试。例如,node --inspect-brk script.js会启动脚本并等待调试器连接。...使用内置调试器启动Node.js应用并等待调试器连接:```$ node --inspect-brk app.js```# 八:访问全局变量和函数示例在Node.js命令行中访问__filename和_
shell 中执行自定义的脚本指令,并在执行完成之后将 PATH 恢复原样。...这样写的目的是为了使该文件以可执行程序去运行的时候可以找到相应的解释器,当然如果将文件所在位置作为参数传递给解释器来执行的话,则不需要在自定义脚本的第一行添加上述代码(写了也没用),例如: /bin/bash...(并隐式传递给文件的路径)在眼前)。.../bin/demo-cli 命令来调试我们的代码了!.../bin/demo-cli 来调试还是不妥,这种 cli 工具我们都是要靠项目调试的,因此我们需要通过在本项目的根目录下执行以下指令: npm link 这样的话,会在全局中创建关于我们的 demo-cli
'abc' ] process.argv的用法是第一个是node文件, 第二个是脚本文件, 第三个是参数 npm scripts(npm脚本)发送命令行参数 什么是npm scripts npm...允许在package.json文件里面,使用scripts字段定义脚本命令。...比较特别的是, 这个shell 会自动将当前目录下的node_modules/.bin子目录加入PATH,执行结束, 再将PATH变量恢复原样 通配符 由于 npm 脚本就是 Shell 脚本,因为可以使用..."test": "tap test/\*.js" 传参 将命令行参数发送到npm脚本: npm run [command] [-- ] 注意必要的--,需要将参数传递到npm命令本身,并将其传递给脚本...[2]如何向npm脚本发送命令行参数?
使用Node.js和npm构建脚本或命令行工具。 一、包装shell命令 第一步:创建一个npm项目 npm init; 第二步:创建一个js文件(index.js),包含要运行的脚本 !.../usr/bin/env node”,告知脚本使用Node执行。 第三步:在package.json文件中补充bin部分 { ......有时需要根据用户输入进行交互,最常用的方式是传递给命令行一些有价值的参数。...可以通过“process.argv”将参数传递给Node脚本,可以使用commander;大多数依赖回调或promise等待用户输入,我们可以使用co-prompt利用ES6的yield关键字。...三、实现npm init 通过npm init命令可以初始化package.json。 $ npm init ? 通过Node实现: #!
确定这个vue命令名称的是在node/v12.16.1/lib/node_modules/@vue/cli目录下package.json中的bin的键值。...下载完成后,会在下载好的包中查找package.json中是否有bin,如果有,会通过package.json中的bin中的键去配置软链接。.../usr/bin/env node 配置package.json文件,添加bin属性(指定脚手架命令与地址) 编写脚手架代码 将脚手架发布到npm 使用流程: 安装脚手架: npm install...4-3 Node源码调试过程中必会的小技巧 WebStorm -> Preferences… -> 搜索 Node.js and NPM -> 勾选 Coding assistance for Node.js..._resolveFilename的作用是解析模块的真实路径,这个方法传进去两个参数,其中第一个options我们发现了: Module.
使用Node.js和npm构建脚本或命令行工具。 一、包装shell命令 第一步:创建一个npm项目 npm init; 第二步:创建一个js文件(index.js),包含要运行的脚本 !.../usr/bin/env node”,告知脚本使用Node执行。 第三步:在package.json文件中补充bin部分 { ......有时需要根据用户输入进行交互,最常用的方式是传递给命令行一些有价值的参数。...可以通过“process.argv”将参数传递给Node脚本,可以使用commander;大多数依赖回调或promise等待用户输入,我们可以使用co-prompt利用ES6的yield关键字。...三、实现npm init 通过npm init命令可以初始化package.json。 $ npm init 通过Node实现: #!
但是每次拷贝模版再去修改,总是麻烦的,不如来开发一个脚手架,用命令行生成koa2项目。 本文将事无巨细地介绍如何用node.js+typescript开发脚手架。...npm init 然后补充必要的信息,其中main是入口文件,bin用于引入一个全局的命令,映射到lib/index.js,有了bin字段后,我们就可以直接运行koa-generator-cli命令,而不需要...npm link-本地调试 记得我们前面在package.json中有个bin配置,那我们直接跑koa-generator-cli这个命令试试。...为了方便调试,我们在package.json中再加两个配置,用于调试和打包。...commander-处理命令 我们用到commander来处理命令。commander是一个用于简化node.js命令行开发的库。 安装commander。
其中process为node进程中的全局变量,process.argv为一数组,数组内存储着命令行的各个部分,argv[0]为node的安装路径,argv[1]为主模块文件路劲,剩下为子命令或参数,如下.../bin/web.js a b c # process.argv的值为[ '/usr/local/bin/node', '/PATH/web.js', 'a', 'b', 'c' ] 3.命令配置 在package.json.../bin/web.js" }, bin字段的作用:当安装npm包时,npm将添加一条命令/usr/local/bin/web,web命令软连接到web.js文件。...调试命令行 (1)采用install方法 进入npm包目录下,执行全局install,根据package.json中bin的配置,为全局命令创建软连。 # sudo npm install ....本文是通过原生node.js来开发命令工具,而vue-cli是采用commander.js来简化命令工具开发,关于commander.js的使用方法,将在下一篇文章中介绍。
其实这里边还有很多有意思的命令&参数。...在调试完毕后,执行npm unlink来删除链接。 如何创建命令行可执行模块 我们可以在package.json中添加bin字段,用来指定一个文件。...写tag的好处是,我们可以同时维护多份代码,两者互不影响(但是要小心publish的时候一定不要忘记tag) 就比如去年的node.js稳定版还是6,但是koa已经开始使用7.6+的async/await...其实我们可以在这个地方执行git push操作来将本次的修改直接推到GitHub仓库上,节省了一次不必要的命令键入。...比如说我们使用Flowtype开发了一个包,我们可以直接将源码传到npm上,然后在install命令中执行编译,去除flow comments。
许多 CLI 提供默认的命令行参数,而无需用户进一步交互。不强迫用户提供一些非必要的参数。...当命令行参数和环境变量都配置相同的设置时,应该给环境变量一个优先级来覆盖该设置。 4 易用性 本节将介绍,如何在用户缺乏开发者设计工具所需环境的情况下,更加容易地使用 Node.js CLI。...❌ 错误: 没有 Node.js 环境的用户将没有 npm 或 npx ,因此将无法运行您的 CLI 工具。...我们可以将 #!/usr/bin/env node 作为最佳实践,但是这仍然假设 Node.js runtime 是被 bin/node 引用,而不是 bin/nodejs 或其他。...因为只是从用户那里收集反馈,并让他们查明错误原因将特别困难。 ➡️ 细节: 使用环境变量或命令行参数来设置调试模式并打开详细输出信息。
如果希望两个命令同时平行执行,它们中间可以用 & 连接。 写在 scripts 属性中的命令,也可以在 node_modules/.bin 目录中直接写成 bash 脚本。...npm bin npm bin 命令显示相对于当前目录的,Node 模块的可执行脚本所在的目录(即 .bin 目录)。 # 项目根目录下执行 $ npm bin ....除了将全局的包链接到本地以外,使用 npm link 命令还可以将本地的包链接到全局。使用方法是在包目录(package.json 所在目录)中运行 npm link 命令。...package.json 必须在包的顶层目录下; 。二进制文件应该在 bin 目录下; 。JavaScript 代码应该在 lib 目录下; 。文档应该在 doc 目录下; 。...Node.js 对包的要求并没有这么严格,只要顶层目录下有 package.json,并符合一些规范即可。当然为了提高兼容性,我们还是建议你在制作包的时候,严格遵守 CommonJS 规范。
commander.js,可以自动的解析命令和参数,用于处理用户输入的命令。 download-git-repo,下载并提取 git 仓库,用于下载项目模板。...npm install commander download-git-repo inquirer handlebars ora chalk log-symbols -S 处理命令行 node.js 内置了对命令行操作的支持...,在 package.json 中的 bin 字段可以定义命令名和关联的执行文件。...调用 command('init ') 定义 init 命令,name 则是必传的参数,为项目名。...更多的参数设置可以参考官方文档。 通过命令行交互,获得用户的输入,从而可以把答案渲染到模板中。
cook-cli $ cd cook-cli $ npm init --yes 通过 npm init 命令,会将该目录初始化为一个 Node.js 项目,它会在 cook-cli 目录下生成 package.json...所以在 package.json 中增加 bin 的声明,对外宣布代言者的存在。如下: { ... "bin": { "cook": "..../bin/cook" }, ... } ---- > 时刻彩排:本地运行和调试 在 CLI 面世之前,本地开发调试是必不可少的,所以便捷的调试途径非常必要。...根据实际要调试的命令参数,修改 args 的值即可。...,我们将本地的 CLI 降一个版本,把 package.json 的 version 修改为 0.0.9,然后运行 cook 查看效果: [16e1d8553d50d69a?
阅读本文,你将学到: 1. 学会全新的官方脚手架工具 create-vue 的使用和原理 2. 学会使用 VSCode 直接打开 github 项目 3. 学会使用测试用例调试源码 4....轻松地运行本地命令 node_modules/.bin/vite -v # vite/2.6.5 linux-x64 node-v14.16.0 # 等同于 # package.json script.../outfile.cjs') // 改成 index.js 便于调试 const bin = path.resolve(__dirname, '....省略放在后文详细讲述 } // async 函数返回的是Promise 可以用 catch 报错 init().catch((e) => { console.error(e) }) 4.1 解析命令行参数...看例子,我们比较容易看懂传参和解析结果。
领取专属 10元无门槛券
手把手带您无忧上云