javascript - 初始化命令有什么作用?

标签 javascript node.js linux unix jasmine

几个 Node.js 包有以下两个步骤作为起点(仅以 Jasmine 为例):

npm install --save-dev jasmine
./node_modules/.bin/jasmine init

第一个语句很简单,但我终究无法弄清楚第二个语句在幕后做了什么。 Jasmine 文档只说它初始化了它(我正在寻找更多技术性的东西)。

./node_modules/.bin/jasmine 看起来像这样:

#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")

case `uname` in
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac

if [ -x "$basedir/node" ]; then
  "$basedir/node"  "$basedir/../jasmine/bin/jasmine.js" "$@"
  ret=$?
else 
  node  "$basedir/../jasmine/bin/jasmine.js" "$@"
  ret=$?
fi
exit $ret

如果有帮助,我这样做是为了在本地克隆和安装包:

  • mkdir testProj : 创建新的项目文件夹
  • code testProj --add : 添加文件夹到工作区
  • cd 测试项目
  • npm init : 创建 package.json
  • npm install [--save-dev] : 安装依赖项
  • ./node_modules/.bin/init :具体是做什么用的?
    • 简写:npx init

任何解释 init 的指针/文档将不胜感激。

编辑:

澄清一下,我知道 init 做了什么(从测试和 Jasmine 文档中可以清楚地看出),我只是不明白它是如何做的。我基本上是想找出为什么从 CLI 运行脚本名称时需要在脚本名称后面加上 init,以及 init 代码所在的位置。

最佳答案

我终于自己解决了这个问题。如果以后有人遇到这个,下面是./node_modules/.bin/jasmine init的解释.

  1. ./node_modules/.bin/jasmine init从命令行执行
  2. 这会运行 jasmine ./node_modules/.bin/ 中的 Unix 脚本(init 参数尚未使用)
  3. 脚本将路径解析为 jasmine.js ( ./node_modules/jasmine/bin/jasmine.js ) 并运行它
  4. Jasmine.js包含此代码:var Command = require('../lib/command.js')
  5. Jasmine.js创建 Command 的新实例对象(command)并执行:command.run(jasmine, process.argv.slice(2));
    • process.argv是从命令行启动应用程序时给出的所有参数的数组。回想一下命令,可以看到 slice(2)等于 init
  6. run内部功能command.js发射initJasmine通过映射initinitJasmine在最顶端
  7. 最后,initJasmine制作目录 spec及其所有内容

希望以后能对其他人有所帮助。

关于javascript - 初始化命令有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47733528/

相关文章:

javascript - 我应该为每个集合使用一个发布还是多个?

javascript - 在运行时将对象传递给 javascript 函数

mysql - SQL Server多数据库nodejs连接

linux - 如何从主内存/RAM 中删除数据

linux - 对于任何 Linux Distro 的打包系统,找到可同时安装的包的最大数量

javascript document.innerHTML 设置整个文档的内容

javascript - Div slider 不起作用 - Javascript

node.js - npm solc : AssertionError [ERR_ASSERTION]: Invalid callback specified

node.js - 捕获 npm 错误!从 shell 脚本运行 npm test 时

php - require_once() 允许本地主机 URL