Node.js专题

自动部署模块所需环境依赖--bat批处理

2019-03-26  本文已影响1人  谭瞎

首发掘金:https://juejin.im/post/5c999c07e51d456d246deebf

nvm

什么是nvm-windows

nvm就是Node Version Manager(Node版本管理器)的简称,很方便的在一台机器上安装多个版本的node并在多个node版本间自由切换。nvm-windows就是安装在windows平台上的nvm。

下载nvm-windows

安装nvm-windows

root: D:\dev\nvm       # nvm.exe所在位置的父路径,也是环境变量NVM_HOME的值
path: D:\dev\nodejs    # nodejs快捷方式的存放位置,也是环境变量NVM_SYMLINK的值
arch: 64               # 如果是32位系统,则这里的64改为32
proxy:                 # 没有使用代理,可以不写

配置环境变量

环境变量.png

验证nvm windows安装是否成功

win+R,打开cmd,输入 nvm -v,若出现下图则表示成功。

nvm版本.png

node.js

下载node.js

安装node.js

node版本.png

使用nvm加载指定版本的node

win+R,打开cmd

nvm使用.png

npm

在之前安装node的时候,自带下载了npm。

查看npm版本号

查看npm版本号:npm -v,安装正确的话,会出现版本号。

改变npm原有的环境变量

首先我们要先配置npm全局模块的存放路径以及cache的路径:

npm config set prefix "D:\nodejs\node_global"
npm config set cache "D:\nodejs\node_cache"
node_modules环境变量.png
npm install express -g
require('express')
nodea全局安装.png

安装cnpm(淘宝cnpm)

npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm_path.png
cnpm -v

bat批处理自动部署

批处理基础

所需资源

其中ax为shell脚本

#!/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/node_modules/ax/bin.js" "$@"
  ret=$?
else 
  node  "$basedir/node_modules/ax/bin.js" "$@"
  ret=$?
fi
exit $ret

ax.cmd

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\node_modules\ax\bin.js" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node  "%~dp0\node_modules\ax\bin.js" %*
)

ax.bat

@ECHO OFF

:: 一、设置变量
set axDir=%~dp0
set ax_home=%axDir%ax
set node_home=%axDir%node
set node_modules=%node_home%\node_modules

set src_ax_sh=%axDir%script\ax
set src_ax_cmd=%axDir%script\ax.cmd

set dest_ax_sh=%axDir%node\ax
set dest_ax_cmd=%axDir%node\ax.cmd

:: 二、设置node、cnpm环境变量
wmic ENVIRONMENT where "name='node_home' and username='%computername%\\%username%'" delete
wmic ENVIRONMENT create name='node_home',username='%computername%\\%username%',VariableValue="%node_home%"
wmic ENVIRONMENT where "name='Path' and username='%computername%\\%username%'" set VariableValue="%PATH%%node_home%" 

set "path=%PATH%%node_home%"

:: 三、将AX项目软连接进node_modules中
cd /d %node_modules%
mklink /D ax %ax_home%

:: 四、将ax.sh、ax.cmd拷贝进node全局环境
copy %src_ax_sh% %dest_ax_sh%
copy %src_ax_cmd% %dest_ax_cmd%

目录结构

目录.png

具体步骤

D:\axTool\node;
D:\axTool\node\nodejs\node_global;
cd /d D:\axTool\node\nodejs\node_global\node_modules
mklink /D ax D:\axTool\ax
del D:\axTool\node\nodejs\node_global\ax
del D:\axTool\node\nodejs\node_global\ax.cmd

copy D:\axTool\script\ax D:\axTool\node\nodejs\node_global\ax
copy D:\axTool\script\ax.cmd D:\axTool\node\nodejs\node_global\ax.cmd

所遇问题

wmic ENVIRONMENT create name='node_home',username='%computername%\\%username%',VariableValue="%node_home%"
wmic ENVIRONMENT where "name='Path' and username='%computername%\\%username%'" set VariableValue="%node_home%;%PATH%" 
set "path=%node_home%;%PATH%"
上一篇下一篇

猜你喜欢

热点阅读