前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >命令行参数

命令行参数

作者头像
木子星兮
发布2020-07-16 21:41:16
1.9K0
发布2020-07-16 21:41:16
举报
文章被收录于专栏:前端小码农前端小码农

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

  1. 新建一个shell.js
代码语言:javascript
复制
console.log(process.argv);

在终端输入 node shell.js

代码语言:javascript
复制
[ '/Users/xxxx/.nvm/versions/node/v10.16.1/bin/node',
  '/Users/xxxx/temp/vue-project/shell.js' ]

在终端输入 node shell.js abc

代码语言:javascript
复制
[ '/Users/xxx/.nvm/versions/node/v10.16.1/bin/node',
  '/Users/xxx/temp/vue-project/shell.js',
  'abc' ]

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

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

什么是npm scripts

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

代码语言:javascript
复制
{
  // ...
  "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 通配符。

代码语言:javascript
复制
"lint": "jshint *.js"
"lint": "jshint **/*.js"

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

代码语言:javascript
复制
"test": "tap test/\*.js"

传参

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

代码语言:javascript
复制
npm run [command] [-- <args>]

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

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

代码语言:javascript
复制
plugins: [
    new webpack.DefinePlugin({
      'domain':  process.argv[2]
    }),
}

参考

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

参考资料

[1]npm scripts 使用指南: http://www.ruanyifeng.com/blog/2016/10/npm_scripts.html

[2]如何向npm脚本发送命令行参数?: https://cloud.tencent.com/developer/ask/50047

[3]编译环境中的几种传参方法: https://crossjae.github.io/2018/01/14/npmpackage/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 牧码的星星 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • node中可以通过process.argv来获取参数
  • npm scripts(npm脚本)发送命令行参数
    • 什么是npm scripts
    • 原理
    • 通配符
    • 传参
    • 使用webpack.DefinePlugin在打包时对文件中的变量进行替换
    • 参考
      • 参考资料
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档