現在出現了越來越多的開源的項目供我們使用,對于使用mac和linux的同學來說用起來簡直就是一種開心的不要要的事情,但對于一些使用windows的童鞋來說,有時候確是一種痛苦的事情,很多環境的搭建過程中就會遇到很多的坑,也會大大的打擊了一些同學一腔的熱血。今天就來說說weex環境搭建過程中的一些坑。(以windows為例)
1、Node.js的安裝
Node.js的安裝和平時我們安裝windows的軟件是一樣的,我們可以在Node.js 官網選擇下載穩定版的Node.js安裝包,然后一路安裝,完成之后打開windows的終端窗口,輸入:Node -v,出現版本號說明Node.js安裝成功。
>C:\Users\root>node -v
>v6.10.3
通常,安裝了 Node.js 環境,npm 包管理工具也隨之安裝了,我們可以繼續輸入:npm -v 或者 npm -version (筆者測試 Node不支持 -version命令),同樣的,如果你能看到版本號,則說明npm也可以使用了。
>C:\Users\root>npm -v
>3.10.10
npm(node package manager),通常稱為node包管理器。它的主要功能就是管理node包,包括:安裝、卸載、更新、查看、搜索、發布等。
2、weex-toolkit的安裝
到了這里,我遇到的一個大坑就出現了。按照 weex 官方 的教程,我們使用npm安裝weex-toolkit:
>npm install -g weex-toolkit
然而,這個時候看到了一句話:
國內開發者可以考慮使用淘寶的 npm 鏡像 —— cnpm 安裝 weex-toolkit
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
$ cnpm install -g weex-toolkit
```
*提示:*
>如果提示權限錯誤(*permission error*),使用 sudo
關鍵字進行安裝
```
$ sudo cnpm install -g weex-toolkit
```
于是,果斷使用cnpm安裝weex-toolkit,誰讓我們是國內開發者呢。一路暢通,安裝完成,打開cmd,輸入: *weex -v*,OK,版本號出來了,大喜,這不就成功了么,然后再試試輸入:*weex* 命令,結果gg了,出現了:
```
C:\Users\root\AppData\Roaming\npm\node_modules\weex-toolkit\node_modules\_xtoolkit@0.2.7@xtoolkit\src\package\NpmPackage.js:50
throw new Error('resolve path error:'+this.path)
^
Error: resolve path error:C:\Users\root\AppData\Roaming\npm\node_modules\weex-toolkit\node_modules\_weex-previewer
at NpmPackage.resolve (C:\Users\root\AppData\Roaming\npm\node_modules\weex-toolkit\node_modules\_xtoolkit@0.2.7@xtoolkit\src\package\NpmPackage.js:50:23)
at Command.run (C:\Users\root\AppData\Roaming\npm\node_modules\weex-toolkit\node_modules\_xtoolkit@0.2.7@xtoolkit\src\Command.js:43:13)
at XToolkit._done (C:\Users\root\AppData\Roaming\npm\node_modules\weex-toolkit\node_modules\_xtoolkit@0.2.7@xtoolkit\src\xtoolkit.js:149:36)
at process.nextTick (C:\Users\root\AppData\Roaming\npm\node_modules\weex-toolkit\node_modules\_xtoolkit@0.2.7@xtoolkit\src\xtoolkit.js:90:22)
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9)
at Module.runMain (module.js:606:11)
at run (bootstrap_node.js:390:7)
at startup (bootstrap_node.js:150:9)
at bootstrap_node.js:505:3
```
這很顯然,安裝weex的路徑有問題,或者也有人說是cnpm鏡像上的weex有問題,這個就不知道了,果斷卸載cnpm安裝的weex,重新使用npm安裝試試:
```
>npm uninstall -g weex-toolkit
>npm install -g weex-toolkit
```
接下來,坑又出現了,果然出現了權限檢查的問題,并且直接最后報錯:


然而,大家知道,windows是不支持 *sudo* 命令的,所以我們就要考慮其他的解決辦法,最簡單的就是,既然路徑```C:\Users\root\AppData\Roaming\npm\node_modules\weex-toolkit\node_modules```沒有寫入權限,那我們就換個路徑好了。
再次打開cmd,輸入:
```
>npm config ls
```
可以看到npm和node的一些信息和配置路徑:
```
C:\Users\root>npm config ls
; cli configs
user-agent = "npm/3.10.10 node/v6.10.3 win32 x64"
; userconfig C:\Users\root\.npmrc
prefix = "C:\\Users\\root\\AppData\\Roaming\\npm"
registry = "https://registry.npm.taobao.org/"
; builtin config undefined
; node bin location = C:\Program Files\nodejs\node.exe
; cwd = C:\Users\root
; HOME = C:\Users\root
; "npm config ls -l" to show all defaults.
```
*prefix* 的路徑剛好就是我們寫不進去的路徑,接下來,我們在任意地方新建一個文件夾(最好不要有中文和空格),我們修改 *prefix *:
```
>npm config set prefix "I:\Nodejs\node_modules"
```
然后依然使用npm安裝:
```
>npm install -g weex-toolkit
```
我們會發現已經沒有了權限的提醒和最后的Error,完美安裝成功!你以為到這里就結束了,現在打開cmd,輸入*weex*,發現會顯示命令無效,我們繼續,回到桌面,在計算機圖標上右鍵->屬性->高級系統設置->環境變量->系統變量->Path中,把剛才我們自己新建的文件夾添加進去,注意:別忘記在路徑的最后添加反斜杠,表示路徑之下還有文件存在。重新打開一個終端,輸入weex,發現可以正常使用了。
致此,weex環境在windows的問題就解決了,終于可以向著weex前進了,然而,后面的路上,依然坑坑洼洼。