命令行参数

作者: IOneStar | 来源:发表于2018-09-08 20:28 被阅读2次

原文首次发表在命令行参数

node中可以通过process.argv来获取参数

  1. 新建一个shell.js
console.log(process.argv);

在终端输入 node shell.js

[ '/Users/wangyaxing/.nvm/versions/node/v10.7.0/bin/node',
  '/Users/wangyaxing/temp/vue-project/shell.js' ]

在终端输入 node shell.js abc

[ '/Users/wangyaxing/.nvm/versions/node/v10.7.0/bin/node',
  '/Users/wangyaxing/temp/vue-project/shell.js',
  'abc' ]

process.argv的用法是第一个是node文件, 第二个是脚本文件, 第三个是参数

npm scripts(npm脚本)发送命令行参数

什么是npm scripts

npm 允许在package.json文件里面,使用scripts字段定义脚本命令。

{
  // ...
  "scripts": {
    "build": "node build.js"
  }
}

上面代码是package.json文件的一个片段,里面的scripts字段是一个对象。它的每一个属性,对应一段脚本。比如,build命令对应的脚本是node build.js。

原理

执行npm run ,会自动创建一个shell, 在这个shell里面执行指定的脚本命令。
比较特别的是, 这个shell 会自动将当前目录下的node_modules/.bin子目录加入PATH,执行结束, 再将PATH变量恢复原样

通配符

由于 npm 脚本就是 Shell 脚本,因为可以使用 Shell 通配符。

"lint": "jshint *.js"
"lint": "jshint **/*.js"

上面代码中,表示任意文件名,*表示任意一层子目录。
如果要将通配符传入原始命令,防止被 Shell 转义,要将星号转义。

"test": "tap test/\*.js"

传参

将命令行参数发送到npm脚本:

npm run [command] [-- <args>]

注意必要的--,需要将参数传递到npm命令本身,并将其传递给脚本。

使用webpack.DefinePlugin在打包时对文件中的变量进行替换

plugins: [
    new webpack.DefinePlugin({
      'domain':  process.argv[2]
    }),
}

参考

npm scripts 使用指南
如何向npm脚本发送命令行参数?
编译环境中的几种传参方法

相关文章

  • 九、处理用户输入

    简单目录 1.命令行参数 2.处理命令行选项和命令行参数参数 3.read命令获取用户输入 1.命令行参数 在命令...

  • 常用的npm包

    命令行参数处理 nodejs 脚本,命令行参数处理,接受参数parse 可以使用 minimist 参数提示 co...

  • 特殊变量列表

    特殊变量列表 命令行参数 运行脚本时传递给脚本的参数称为命令行参数。命令行参数用 $n 表示,例如,$1 表示第一...

  • Java 命令行参数解析类库

    命令行参数解析类库1命令行参数解析类库2命令行参数解析类库3 JArgsJakarta Commons CLITE...

  • pflag命令行参数

    简介 本文讲解如何在go程序中使用命令行参数包pflag来获取gong语言编写的命令行程序的传入参数。 命令行参数...

  • 第14章:处理用户输入

    [TOC] #1. 命令行参数 向shell脚本传递数据的最基本方法是使用命令行参数。命令行参数允许在运行脚本时向...

  • flag

    编写命令行程序时会使用不同的启动参数(命令行参数)来控制程序的行为 Go编写命令行程序时,获取并解析命令行参数的方...

  • 2.2.7 shell位置参数与特殊变量

    命令行参数

  • shell环境变量一览

    变量说明*含有所有命令行参数(以单个文本值的形式)@含有所有命令行参数(以多个文本值的形式)#命令行参数数目?最近...

  • 比特股命令行钱包cli_wallet参数翻译

    一 命令行参数

网友评论

    本文标题:命令行参数

    本文链接:https://www.haomeiwen.com/subject/cjulgftx.html