標籤:https join tar .com 對象 引入 cli src node
node-webkit 如何啟動 express(更準確說是MEANJS) 項目?
一般網上都是教你node-webkit從一個html檔案啟動起來的~當我們是用一個express項目讓node-webkit啟動的話,就很少有人寫到過~
所以,我將在這裡記下我是如何讓node-webkit啟動一個express服務的!
參考官方資料:
https://github.com/nwjs/nw.js/wiki/NW.js-use-express-and-similar-web-frameworks
從官方文檔來看,貌似只需要將 main 屬性配置成一個url, node-main 配置成express服務啟動的指令碼就行了~
代碼如下所示:
{ ... "node-main":"./app/server.js", "main": "http://localhost:3000", ...}
上面的代碼是node-webkit項目的 package.json檔案(不是node的package.json),其中 node-main 是我們 express 的啟動指令碼,main是我們啟動express後,node-webkit將會訪問的第一個頁面。
恩,這樣子配置完是不是就可以了呢?
我們試著啟動一下~我們就會發現,服務並沒啟動!!!
奇怪~服務怎麼沒啟動起來呢?
我們試著用終端來啟動下該express項目,看看是不是express項目配置有問題導致的。
如:
居然報錯說沒找到 E:\webstormWorkspace\cnote\config\assets\default 模組~
仔細的看了下上面報錯的路徑地址~咦?
我的路徑不應該是:E:\webstormWorkspace\cnote \app \config\assets\default ?
路徑中怎麼會少了app該目錄呢?
突然想起來,當node-webkit啟動我的cnote項目的時候,它是從cnote目錄開始的,那麼nodejs的全域process.cwd()返回的工作目錄地址就是E:\webstormWorkspace\cnote;然後,我們看下剛才報錯的檔案,發現該檔案使用了很多 process.cwd()
中某部分代碼:path.join(process.cwd(), ‘modules/*/client/‘),因為我現在可以知道,我們當前的cnote項目中的全域 process.cwd() 返回的結果是:E:\webstormWorkspace\cnote,而不是 E:\webstormWorkspace\cnote\app,所以,導致那些引入的檔案路徑都錯了~
既然知道了問題,那我們就找方法解決這個問題。
全域對象 process 提供了process.chdir(directory),這個方法將會改變我們項目的當前工作目錄,也就是說我們跟nodejs說:“嘿,我們的工作目錄不是那個,是這個…~”。
process 參考資料:
https://nodejs.org/api/process.html#process_process_chdir_directory
我們只需要在調用process.cwd()方法前,用process.chdir(directory)將當前工作目錄修改~
如:
然後,我們再次執行下startCnote.bat指令碼,
探索服務正常啟動了~
雲筆記開發記錄二:node-webkit 如何啟動 express(更準確說是MEANJS) 項目?