最近在整一个 OpenAPI 编排器,想到 npm-run-all 的任务流。看了一下这个 6 年前的源码。npm-run-all[1] 是一个用来并行或者串行运行多个 npm 脚本的 CLI 工具。...入口分析 npm-run-all 包支持三条命令,我们看到源码根目录的 package.json 文件: { "name": "npm-run-all", "version": "4.1.5",..." ], "engines": { "node": ">= 4" } } bin 下面定义的命令脚本: run-p,简化使用的脚本,代表并行执行脚本; run-s,简化使用的脚本,...代表串行执行脚本; npm-run-all,复杂命令,通过 --serial 和 --parallel 参数实现前两者一样的效果。.../common/bootstrap")("npm-run-all") 上述代码中,如果是执行 run-p 这条命令,则函数传入的参数是 run-p,run-s 同理。
今天想从 npm run 命令开始,尽可能的阐述一下整条链~~~ npm script 项目的相关脚本,可以集中在一个地方(这里指入口) 以利用 npm 提供的很多辅助功能,以及不同项目的脚本命令...,只要功能相同,就可以有同样的对外接口(如 npm run test,不管是 mocha 还会 jasmine) npm 脚本的原理非常简单。...每当执行 npm run,就会自动新建一个 Shell,在这个 Shell 里面执行指定的脚本命令。因此,只要是 Shell(一般是 Bash)可以运行的命令,就可以写在 npm 脚本里面。...npm 脚本的退出码,也遵守 Shell 脚本规则。如果退出码不是 0,npm 就认为这个脚本执行失败。...退出码对于命令的串行执行意义重大:npm并行&串行执行多个scripts命令 The actual shell your script is run within is platform dependent
在 zsh 中输入的 ls 命令,则是 zsh 进程又启动了一个 ls 子进程。在 iTerm 中输入 ls 命令过程的进程关系如下所示。...:28 pts/6 00:00:00 node run.js 这是因为 PID 为 29519 的 make_zombie 父进程在 15s 以后退出,僵尸子进程被托管到 init 进程,这个进程会调用...说到 node,这里提一下 npm,npm 实际上是使用 npm 进程启动了一个子进程启动了 package.json 中 scripts 里写的启动脚本,示例 package.json 脚本如下所示。...ya 19235 19234 0 12月20 pts/6 00:00:01 -zsh ya 32252 19235 0 16:32 pts/6 00:00:00 npm...ADD test.tar.gz . # CMD ["npm", "run", "start"] CMD ["/bin/bash", "-c", "set -e && npm run start"] 使用这种方式是比较简单
运行 NPM 脚本 当第三方库已经下载到本地后,接下来我们就可以通过对应的命令执行操作了。...它们可以通过运行 npm run [name] 来执行。...例如,要启动本地开发服务器,我们可以运行: cd path/to/project npm run start 运行此命令会启动一个长时间运行的进程。...链接命令 每当我们从 Github 克隆一个新项目时,我通常会连续做两件事: npm install,获取第三方依赖 npm run start,启动本地开发服务器 此时,就会有一个问题,当install...方法如下: npm install && npm run start && 操作符允许我们将多个命令链接在一起。第一个命令会执行 npm install。一旦完成,第二个命令会自动运行。
$ sudo groupadd docker # 将当前用户加入 docker 组,退出当前终端并重新登录后生效 $ sudo usermod -aG docker $USER # 测试是否安装成功...registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn" ], } # :wq 保存退出后重启...=(zsh-autosuggestions zsh-syntax-highlighting z /' ~/.zshrc && \ chsh -s /bin/zsh # 创建 me 用户 RUN...bin --global` /home/me/.node-bin && \ npm install --global nrm && \ nrm use taobao && \...run -it frontend/react:v1 /bin/zsh 5.
运行该命令会从NPM仓库下载项目所依赖的所有第三方代码。这些代码将存在于本地的node_modules目录中。 运行NPM脚本 此时,你已经下载好了第三方的代码,然后呢?...它们可以通过运行npm run [name]来执行。...我们也可以创建属于自己的NPM脚本。关于此,我会在后面的文章进行详细说明。 在IDE中打开项目 当我想在一个项目上开始工作时,首先我会在终端导航到项目的根目录。...链式命令 每当我从Github上克隆一个新项目时,我一般要做两件事: npm install ,来拉取第三方依赖。 npm run start ,来启动本地开发服务器。...这是一个特别巧妙的技巧,因为npm run start通常会打开一个浏览器窗口,吸引我的注意力,让我知道一切都准备好了。相比之下,npm install是静默完成的。
/bash # 设置 pnpm 环境变量 ENV PNPM_HOME /root/.local/share/pnpm \ && PATH $PNPM_HOME:$PATH # 安装 pnpm RUN...npm config set registry=https://registry.npmmirror.com \ && npm i -g pnpm \ && pnpm setup \...&& pnpm config set store-dir $PNPM_HOME # 安装需要用到的工具,因为我这里选择的node版本是最小的,所以需要安装一些工具 RUN if command...我推荐的是轻量版 slim 版本,需要用到啥工具,自己去安装就好了,docker 的难度在于 shell 脚本能力,所以自己用啥自己去安装,提升自己 shell 脚本能力。...在挂载的时候要注意,如果是 bind 挂载,那么宿主机的目录必须存在,否则会报错 (7) runArgs:docker run 后面接的参数 (8) build.args:docker build 后面接的参数
node -v 假如出现了类似与以下的信息就说明安装完成 v6.10.3 使用nvm管理node版本 安装nvm 复制以下代码,放到一个shell脚本中。 #!...>/dev/null 2>&1 || return 0 local NPM_VERSION NPM_VERSION="$(npm --version)" NPM_VERSION="${NPM_VERSION...echo "=> Create one of them and run this script again" echo "=> Create it (touch ${NVM_PROFILE})... node -v 假如出现了类似与以下的信息就说明安装完成 v6.10.3 使用nvm管理node版本 安装nvm 复制以下代码,放到一个shell脚本中。  #!...>/dev/null 2>&1 || return 0 local NPM_VERSION NPM_VERSION="$(npm --version)" NPM_VERSION="${NPM_VERSION
vue-next % yarn build yarn run v1.22.11 复制代码 一切准备就绪: 结果。。。...npm install?? npm run build ?? yarn install?? 没反应,一直报错,心态爆炸,认真审题很重要,仔细看文档也一样!..."$NVM_DIR/nvm.sh" 复制代码 c、执行命令生效: source ~/.bash_profile 复制代码 如果shell使用的是非zsh,以上三步配置完即可,如果是zsh环境,需要多配置以下...配置信息如下: source ~/.bash_profile 复制代码 保存后退出执行如下命令行使之生效: source ~/.zshrc 复制代码 经过如上步骤配置,nvm也配置成功了: 可查看nvm...对比转换为js后代码如下,顺便自带翻译一下注释: /** *用于模板表达式的@babel/parser插件列表 *转换和SFC脚本转换。
nvm 安装 卸载全局安装的 node/npm 在官网下载的 node 安装包,运行后会自动安装在全局目录,使用过程中经常会遇到一些权限问题,所以推荐按照以下方法卸载全局安装的 node/npm 打开 ...sudo rm /usr/local/share/man/man1/node.1 sudo rm /usr/local/lib/dtrace/node.d sudo rm -rf ~/.npm sudo.../opt/local/bin/node sudo rm /opt/local/include/node sudo rm -rf /opt/local/lib/node_modules 安装nvm 安装脚本...v0.39.3/install.sh | 或者 wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | 这两个脚本会下载...我这里使用的是zsh,所以会加到~/.zshrc(脚本也会尝试加到~/.profile, ~/.bashrc故意~/.bash_profile) 安装后,要重新启动终端。
PowerFonts项目: git clone https://github.com/powerline/fonts.git --depth=1 进入克隆的fonts文件夹: cd fonts 执行安装脚本...文件夹: cd oh-my-zsh-agnoster-fcamblor/ 执行安装脚本: ....安装zsh-autosuggestions插件: git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom...命令安装whistle (**Mac或Linux的非root用户需要在命令行前面加sudo,如:sudo npm install -g whistle**) $ npm install -g whistle...重启whsitle: $ w2 restart 停止whistle: $ w2 stop 调试模式启动whistle(主要用于查看whistle的异常及插件开发): $ w2 run 启动完whistle
)" 这个命令的执行原理是:先下载install脚本,再执行这个脚本。...脚本中会克隆 oh my zsh 的仓库,通常情况下执行到这就报错了。...cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc # step 3 chsh -s $(which zsh) # step 4 # 退出终端...one was loaded, run: echo $RANDOM_THEME # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes ZSH_THEME.../zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting 配置文件加入插件
替代方法,该方法使用略微不同的命令来完成相同的操作,并通过 npm 而不是 bash 脚本来安装。...进行终端优化 # 安装 zsh sudo apt-get install zsh # 设置 zsh 为默认shel 设置 -> 重启终端。...chsh -s /bin/zsh # 拉取 oh-my-zsh 项目 git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh...nvm run [] [] Run `node` on with as arguments....app.js using node 6.10.3 nvm run 6.10.3 index.js # Run `node app.js` with the
在研究《管理Python虚拟环境的脚本》时,我们使用了source指令而没有使用sh或者bash来执行脚本,就是因为source指令可以让脚本在当前bash(sh)中执行;而sh或者bash则会新启动一个...source还可以让自动注册脚本中的函数。 比如上面指令让脚本中的findParentID方法可以直接被使用。...比如我们启动一个虚拟环境,使用下面的命令 source .env/bin/activate 而退出虚拟环境的方法deactivate则注册在.env/bin/activate文件中 # This file...must be used with "source bin/activate" *from bash* # you cannot run it directly deactivate () {...:-}" ] ; then hash -r 2> /dev/null fi 如果我们使用bash来执行,则因为虚拟环境会在新启动的bash中存在,并会快速退出。
nodejs 官网 Node多版本 有时候需要用到不同Node的版本运行不同的项目, 单版本就很局限了,所以社区也出了多版本管理的工具 nvm nvm一开始只为linux和macos实现,因为是用shell脚本写的...nvm-sh/nvm/v0.35.3/install.sh | bash # 上面的执行成功后,还需要写入环境变量,具体改动你的shell配置文件(用户根目录下的) # bash -> .bashrc # zsh...声明一个临时变量 export NVS_HOME="$HOME/.nvs" # 克隆仓库 git clone https://github.com/jasongin/nvs "$NVS_HOME" # 执行脚本安装...Run a script using a node version nvs exec [args...]...Run an executable using a node version nvs which [version] Show the path to a node version
然后source下变量: source .vimrc 修改启动问候语 vim $PREFIX/etc/motd 按i然后编辑,比如 www.lruihao.cn 李瑞豪 Esc然后:wq退出...美化 Termux-ohmyzsh 作用 : 美化之外,主要使用了zsh来替代bash作为默认shell。...使用一键安装脚本来安装, 一步到位, 顺便启动了外置存储, 可以直接访问 SD 卡下的目录,创建软文件夹。...一键配置脚本后, 并且授予文件访问权限的话, 会在家目录生成storage目录,并且生成若干目录,软连接都指向外置存储卡的相应目录 可以让从外置储存复制文件进system分区 创建 QQ 文件夹软连接...解决 npm 安装报错(未验证) vim $PREFIX/lib/node_modules/npm/node_modules/worker-farm/lib/farm.js 把里面的 length改成4
profile 系统配置文件 # etc/.bash_profile 系统环境变量配置 # ~/.bash_profile 个人环境变量配置 # ~/.zshrc zsh...nrm npm install -g yarn npm install -g yrm # npm 参数 --ignore-scripts # 忽略脚本错误 --force # 会无视冲突,并强制获取远端...config set electron_mirror=https://npmmirror.com/mirrors/electron/ 提示 将内容写成 shell 脚本,在 SourceTree...Custom actions Script target: /bin/bash Parameters: /Users/liruihao/workspace/.shell/ssh.sh 同步远程仓库标签分支脚本...custom plugin # https://mimosa-pudica.net/zsh-incremental.html source $WORKSPACE/incr*.zsh .vimrc Path
获得用户最后输入的相关信息 user32.GetLastInputInfo(ctypes.byref(struct_lastinputinfo)) # 获取系统开机以来的时间 run_time...= kernel32.GetTickCount() elapsed = run_time - struct_lastinputinfo.dwTime print "[*] It's...detection_complete = False # 获取用户最后一次输入之后经历的时间 last_input = get_last_input() # 超过设定的阀值时强制退出...elif keypress_time is not None: previous_timestamp = keypress_time detect_sandbox...结语 一些简单的脚本 ---- 红客突击队于2019年由队长k龙牵头,联合国内多位顶尖高校研究生成立。其团队从成立至今多次参加国际网络安全竞赛并取得良好成绩,积累了丰富的竞赛经验。
--rm -it -v \ /var/run/docker.sock:/var/run/docker.sock \ -v /opt/lazydocker:/.config/jesseduffield/...# 输入zsh路径 /usr/bin/zsh # 直接切换到zsh /usr/bin/zsh 为zsh设置快捷命令(如果你没有安装zsh,请自行将以下命令中的zsh字符替换为自己的shell) # 在zsh...的配置文件中设置启动Lazydocker的快捷指令lzd echo "alias lzd='sudo docker run --rm -it -v /var/run/docker.sock:/var/run...下一个tab d: 删除当前容器 e: 隐藏或展示已经关闭的容器 s: 停止当前容器 r: 重启当前容器 a: 连接到当前容器,连接成功后可以实时查看容器内部运行产出的log (Ctrl+D可退出...) m: 查看当前的容器实时的log (Ctrl+C可退出) E: 以exec -it方式为运行容器开启一个shell, shell退出后,不会影响正在运行的容器 b: 调用批量操作containers
领取专属 10元无门槛券
手把手带您无忧上云