使用node-oracledb的伙伴可以參考本文進行環(huán)境安裝刁卜,前言建議伊约,如你項目是屬于node-oracledb進行類客戶端開發(fā)级乐,可直接放棄該方案罐孝,node-oracledb是本機C++編譯模塊,node-oracledb的運行環(huán)境是必須環(huán)境狞尔,就是說丛版,就算項目打包出來運行,node-oracledb這些環(huán)境依然是你目標機要求環(huán)境偏序,相關(guān)問題參考官方issue页畦,博主以失敗方案為你親身實驗了一波,你應(yīng)該將node-oracledb作為服務(wù)驅(qū)動研儒,而不是客戶端級別的驅(qū)動使用豫缨。
Mac環(huán)境
要求環(huán)境:
- node基本環(huán)境
- Python 環(huán)境,通常MacOS10.12版本以上自帶python環(huán)境
- 成功安裝instantclient-basic-macos.x64-12.1.0.2.0.zip 及instantclient-sdk-macos.x64-12.1.0.2.0.zip
Mac環(huán)境node安裝
搭建node環(huán)境端朵,建議通過node版本管理工具好芭,當然也可以去官網(wǎng)下載安裝包安裝,這里介紹mac系統(tǒng)node版本管理工具nvm
curl工具現(xiàn)在成為了mac內(nèi)置命令逸月,通常mac電腦自帶curl工具栓撞,如未安裝curl請自行下載安裝,
- 下載與執(zhí)行遠程安裝nvm腳本
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
- 添加系統(tǒng)變量碗硬,mac電腦可用
~/.bashrc
,~/.bash_profile
, 或者~/.zshrc
來管理系統(tǒng)變量瓤湘,在你電腦中用戶根文件夾執(zhí)行
ls -a
查看是否已有上訴文件,如無恩尾,新建.bash_profile
文件弛说,或者另外兩種之一亦可,并用vi編輯文件翰意,黏貼以下變量:
touch .bash_profile //新建.bash_profile文件
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
source .bash_profile // 重新加載
重啟命令行工具
nvm -v // 查看nvm工具是否安裝成功
nvm ls-remote // 查看遠程可選node安裝版本
nvm install 8.3.0 // 安裝node 版本8.3.0
nvm ls // 查看本機已安裝node版本并進行管理
oracle即時客戶端及SDK安裝
進入官網(wǎng)下載Mac版instantclient-basic-macos.x64-12.1.0.2.0.zip和 instantclient-sdk-macos.x64-12.1.0.2.0.zip
將兩個文件夾解壓到系統(tǒng)根目錄下某一新文件夾木人,通常為/opt/oracle,如無路徑可自行新建冀偶,這里將使用路徑/usr/local/oracle, 打開路徑后醒第,把上述文件拷貝到該路徑下,執(zhí)行以下操作
cd /usr/local/oracle
unzip instantclient-basic-macos.x64-12.2.0.2.0.zip
unzip instantclient-sdk-macos.x64-12.2.0.2.0.zip
mv instantclient_12_2 instantclient
cd instantclient
ln -s libclntsh.dylib.12.1 libclntsh.dylib
添加系統(tǒng)變量:
同樣是之前的用戶根目錄下进鸠,vi打開文件.bash_profile
文件稠曼,添加變量
export OCI_LIB_DIR=/usr/local/oracle/instantclient
export OCI_INC_DIR=/usr/local/oracle/instantclient/sdk/include
npm install
到此oracledb必要環(huán)境即安裝基本完成,可進入項目執(zhí)行
npm install oracledb
如oracledb安裝成功客年,即可進行node_modules全量安裝,否則解決oracledb安裝問題霞幅。
npm install
Windows環(huán)境
要求環(huán)境:
- node基本環(huán)境
- Visual Studio 2005 redistributable 對應(yīng)Oracle client 11.2 或 Visual Studio 2010 redistributable及以上版本對應(yīng)Oracle client 12.1
- Python 2.7 環(huán)境
- 成功安裝instantclient-basic-windows.x64-12.2.0.1.0.zip 及 instantclient-sdk-windows.x64-12.2.0.1.0.zip
node安裝
搭建node環(huán)境漠吻,建議通過node版本管理工具,當然也可以去官網(wǎng)下載安裝包安裝司恳,可選管理工具:nvm-windows或 nodist
這里介紹使用nvm-windows安裝node途乃,安裝成功nvm-windows后重啟電腦,打開cmd命令界面執(zhí)行:
nvm -v
查看nvm是否安裝成功扔傅,未成功耍共,請重新安裝,接下來執(zhí)行
nvm arch 64 //如電腦是32位系統(tǒng)應(yīng)設(shè)置為32
nvm list available //查看遠程可安裝node 版本
選擇版本安裝node v8.3.0
nvm install 8.3.0
node -v // 查看node是否安裝成功
nvm list // 查看當前已安裝node 版本及進行相應(yīng)管理
Visual studio安裝
Visual Studio 2013 (VC++ 12.0)及以上版本安裝铅鲤,各機型有可能會遇到問題划提,建議進行全量安裝Visual C++ Build Tools枫弟,直接避免后期問題邢享,或者強迫癥也可以堅持部分安裝,只進行安裝Visual Studio 2013 redistributable淡诗。官網(wǎng)Visual C++ 支持包下載列表
進入Visual C++ 2015 Build Tools官網(wǎng)下載Visual C++ 2015 Build Tools進行全量安裝
安裝過程中可能需要.Net Framework 版本環(huán)境要求請按要求自行安裝
python安裝
1 官網(wǎng)下載安裝包下載骇塘,默認安裝在C:\Python27
2 環(huán)境變量添加:
點擊我的電腦—屬性—高級系統(tǒng)設(shè)置—環(huán)境變量—系統(tǒng)變量Path——編輯,添加 C:\Python27 及 C:\Python27\Scripts韩容,變量之間以分號“;”間隔
python // 檢測是否安裝成功
oracle即時客戶端及SDK安裝
1 進入官網(wǎng)下載 instantclient-basic-windows.x64-12.2.0.1.0.zip和 instantclient-sdk-windows.x64-12.2.0.1.0.zip
2 C盤建立oracle文件夾款违,將下載的兩個安裝包全部解壓至該文件夾下面,
3 添加系統(tǒng)環(huán)境變量
- Path下添加:C:\oracle\instantclient_12_2群凶;
- 新建變量 OCI_INC_DIR=C:\oracle\instantclient_12_2\sdk\include\
- 新建變量 OCI_LIB_DIR=C:\oracle\instantclient_12_2\sdk\lib\msvc\
4 如電腦還有設(shè)置防火墻插爹,請查看官網(wǎng)文檔.
npm install
到此oracledb必要環(huán)境即安裝基本完成,可進入項目執(zhí)行
npm install oracledb
如oracledb安裝成功请梢,即可進行node_modules全量安裝,否則解決oracledb安裝問題赠尾。
npm install
關(guān)于另一種方式安裝win下環(huán)境:
網(wǎng)上相關(guān)資料有 windows-build-tools包同樣能全自動解決所有部署環(huán)境,但是在操作過程中毅弧,同樣試了一下气嫁,但是沒有成功,但是有部分人成功了够坐,本文同樣列舉相關(guān)操作進行自動環(huán)境部署作為方案之一:
首先確認你的npm版本應(yīng)該大于5版本以上寸宵,以管理員身份進行操作,導航至你項目下元咙,同樣注意電腦.Net Framework版本環(huán)境4.5.1及以上:
// navigate to your app folder
npm install --global npm // 如npm版本過低梯影,才需執(zhí)行
npm install --global --production windows-build-tools
npm install instantclient
set PATH=%cd%\instantclient;%USERPROFILE%\.windows-build-tools\python27;%PATH%
set OCI_LIB_DIR=%cd%\instantclient\sdk\lib\msvc
set OCI_INC_DIR=%cd%\instantclient\sdk\include
npm install oracledb
相關(guān)設(shè)定命令補充:
npm config set python python2.7
npm config set msvs_version 2015 // 你應(yīng)該檢查當前安裝的visual studio C++是2015才能設(shè)定為2015,否則為你本機安裝版本庶香。
npm install和運行可能遇到問題及其解決方式:
oracledb安裝問題
通常情況下甲棍,安裝問題更容易在windows系統(tǒng)下遇到,Mac環(huán)境下脉课,npm安裝失敗救军,一般都是oracle即時客戶端及SDK安裝時路徑不對或者系統(tǒng)變量未正確設(shè)置财异,這里主要介紹我在window環(huán)境下安裝遇到的各種問題,僅供參考
問題一:
C:\Program Files (x86)\MSBuild...\msbuild.exe未找到唱遭,或無默認定義MSBuild之類問題戳寸,或者是 node-gyp rebuild errors等等類似錯誤,即屬于visual studio C++ build tools必要工具安裝未成功拷泽,或node-gyp相關(guān)工具未能安裝正確
解決辦法: 確認項目node_modules中node-gyp成功安裝(一般不會這里出錯疫鹊,必要時,可全局安裝執(zhí)行npm install -g node-gyp
)司致, 正常情況下拆吆,應(yīng)該是你的Visual studio c++ 相關(guān)環(huán)境未能正確安裝,建議按之前步驟全部重新安裝visual studio C++ build tools脂矫。問題二:
未能找到oci.h,或類似xxx.h 文件枣耀,造成npm install oracledb 錯誤。
解決辦法: 電腦環(huán)境關(guān)于instantclient-basic-windows.x64-12.2.0.1.0.zip和 instantclient-sdk-windows.x64-12.2.0.1.0.zip兩解壓包環(huán)境操作不當庭再,或環(huán)境配置錯誤捞奕,建議重新按照上述步驟重新部署當前兩種環(huán)境。
oracledb構(gòu)建問題
oracledb屬于C++原生模塊拄轻,如你項目屬于electron相關(guān)項目颅围,項目啟動時構(gòu)建模塊時可能遇到類似問題如下:
構(gòu)建使用node版本不對
The module '...'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 51. This version of Node.js requires
NODE_MODULE_VERSION 53. Please try re-compiling or re-installing
或者是未能找到oci.h,或類似xxx.h 文件定義錯誤相關(guān)
此類問題都是屬于electron未能成功構(gòu)建本地原生模塊構(gòu)成,可查看官方說明
方法一:
// 1. Install electron-rebuild
npm install --save-dev electron-rebuild
// 2. Rebuild
# 每次運行"npm install"出錯時恨搓,運行這條命令
./node_modules/.bin/electron-rebuild
# 在windows下如果上述命令遇到了問題院促,嘗試這個:
.\node_modules\.bin\electron-rebuild.cmd
方法二(不建議使用):
// 全局設(shè)置
# Electron 的版本。
export npm_config_target=1.2.3
# Electron 的系統(tǒng)架構(gòu), 值為 ia32 或者 x64斧抱。
export npm_config_arch=x64
export npm_config_target_arch=x64
# 下載 Electron 的 headers常拓。
export npm_config_disturl=https://atom.io/download/electron
# 告訴 node-pre-gyp 是為 Electron 構(gòu)建。
export npm_config_runtime=electron
# 告訴 node-pre-gyp 從源代碼構(gòu)建模塊夺姑。
export npm_config_build_from_source=true
# 下載所有依賴墩邀,并緩存到 ~/.electron-gyp。
HOME=~/.electron-gyp npm install