åå¤å·¥ä½
å¨ Windows ä¸ç¨ Node.js è¿è¡å¼åä¸åº¦æ¯é常麻ç¦çäºï¼ä½æ¯ç°å¨è¿ä¸ç¶åµç¸è¾äºä¸ä¸¤å¹´åæäºè¾å¤§æ¹åãè¿ä¹æ¯ä¸ºä»ä¹ï¼å¨éæ© Windows 7 è¿æ¯ Windows 10 ä½ä¸ºæ¬æ主é¢ä¹æ¶ï¼æ们ç¹è±«ä¸å³çåå ã
尽管 Windows 7 ä»æ§é常æµè¡ï¼èä¸ Windows 10 æä¸äºä¸å¥½çé£é»ï¼ç±äºè¯ä»·æ ååæ°æ®æ¶éèå´çä¸åï¼ï¼æ们è¿æ¯å³å®éæ© Windows 10 为è¯éªå¯¹è±¡ï¼å 为确ä¿ææ°çæä½ç³»ç»å¯¹ä¿è¯åºç¨å®å
¨è³å
³éè¦ã
å¨æ¬æä¸ï¼æ们å°å°½å¯è½ä½¿ç¨ææ°çå·¥å
·ä¸åºç¨ï¼å¹¶ä½¿ç¨å
¶64ä½çæ¬ï¼ãç¬è
ç¥éå¨å
¬å¸ç¯å¢ä¸è¿å¯è½æ æ³ä¿è¯ï¼ä½ä¿æå·¥å
·çåå«æ¯å¾éè¦çã
æ¬æææçå®è£
é½ä¼å¨æ¬æºä¸è¿è¡ãæä¸å»ºè®®å¨ Cygwin ä¸æ建 Node ç¯å¢ãæ¤å¤ï¼å°½ç®¡ VirtualBox æ¯å
è´¹çï¼å½æå¨ Windows æºå¨ä¸è¿è¡ Linux èææºæ¶ï¼å´æ»æ¯é®é¢ä¸æã
æ¥éª¤1ï¼å®è£
Git
é¦å
ï¼å®è£
Gitã使ç¨é»è®¤è®¾ç½®ï¼è¿äºè®¾ç½®æ¯ç¸å½åççã
ç¬è
é常ä¼å¨ä¸»ç®å½ä¸å建ä¸ä¸ªé¡¹ç®æ件夹ã设置æ¶ï¼å³é®åå»è¯¥æ件夹ï¼éæ© âGit bash hereâï¼åéè¿ git --version æ令æ£æ¥ git çæ¬ã
è¿æ¯å¾å¥½ç bash ç¯å¢ï¼ä½ å¯ä»¥å建ä¸ä¸ª .bash_profile ï¼å¨ä½ æå¼ bash çªå£æ¶æ§è¡ãæ¤å¤ï¼è¿ä¸æ¯ cmd.exe çªå£ï¼ä½ å¯ä»¥æ¥çä¸äºé项ï¼åå»å·¦ä¸è§çå¾æ ï¼ãä½ å¯ä»¥éè¿é¼ æ ä¸é®å°ææ¬æ·è´è³çªå£ï¼å°±åå¨å建ç Linux ç»ç«¯ä¸æ ·ï¼ã
æ¥éª¤2ï¼å¨ Windows 10 ä¸å®è£
Node.js
ä¸è½½å¹¶ å®è£
Node.js ã使ç¨å
¶ LTSï¼é¿ææ¯æï¼çæ¬ã
ç¬è
ä¸å»ºè®®å¹¶æå®è£
å¤ä¸ªçæ¬ï¼å 为 Node çæ¬ç®¡çå¨å¹¶æªæ£å¼æ¯æ Windows ââä¸è¿ï¼ä½ ä»æä¸äºå¤éæ¹æ¡ï¼æ¯å¦ nvm-windows æ nodist ãå
¶å®ï¼å³ä¾¿æ¯å¨å
¶ä»ç³»ç»ä¸ï¼å
¨å±å®è£
ä¸åçæ¬ç node å·¥å
·ä»ç¶åæ¯å¨èªæ¾éº»ç¦ã
æ¥éª¤3ï¼æ´æ° npm
npm ä¼´éç Node èæ¥ãæåå®è£
Node.js ä¹åï¼å
管çå¨ npm ä¹åºå½å¯ç¨äºã
æå¼ä¸ä¸ª bash shellï¼éè¿ npm --version æ£æ¥çæ¬å·ãå¦æ npm æ¯ 2.x çæ¬ï¼ååºè¯¥å级å°çæ¬3ï¼è¿è½è§£å³è®¸å¤é®é¢ï¼å¯¹æ们èè¨ï¼æéè¦çæ¯å
¶å¤ç对çä¾èµçæ¹å¼ï¼ãå¨å¼å§èåä¸æç´¢ Power Shellï¼ä»¥ç®¡çå身份è¿è¡ï¼å¹¶éµå¾ª 以ä¸æ¥éª¤ ã
æ¥éª¤4ï¼å®è£
Visual Studio ä¸Python
Node å
é常ä¼ä¾èµå¸¦ææ¬å°ä»£ç çå
ï¼å æ¤ä½ å¿
é¡»å®è£
Visual Studioã
Node-gpy æ¯å´ç» Python GYP (Generate Your Projects)çä¸æ¬¾å
è£
ç¨åºï¼è¯¥å·¥å
·è½ä¸º Gcc, XCode 以å Visual Studio çæ项ç®æ件ãç±äº Windows å¼åå®é
ä¸æ¯éè¿ Visual Studio è¿è¡çï¼æ们ä¼ç¨å
¶æ¯æ Visual Studioã
å®è£
Pythonï¼2.x çæ¬ï¼
å¦ä½ æè§ï¼ä½ ä¼ç¨å° Pythonï¼å æ¤ ä¸è½½å
¶64ä½ç 2.x çæ¬ å¹¶å®è£
ä¹ãä½ å¯ä»¥éµå¾ªé»è®¤è®¾ç½®ï¼å¹¶éæ© âAdd to path (æ·»å è³è·¯å¾)âé项ãè¿ä¼å° Python äºè¿å¶æ·»å å°å
¨å±è·¯å¾ï¼æå³çæç»ä½ è¦å
ç»åºåç»éã
ä¸ä¸æ¥ï¼è¿å
¥ç¯å¢åé设置ï¼å¨ç³»ç»ï¼é«çº§è®¾ç½®ä¸ï¼ï¼å¹¶å°GYP_MSVS_VERSION=2015 æ·»å å°å
¨å±åéä¸ï¼å 为ä¸ä¸æ¥æ¯ Visual Studio 2015 çå®è£
ã
å®è£
Visual Studio (VS2015)
ä¸åäº2012ä¹åççæ¬ï¼VS2015 è½ä¸64ä½ç Node.js åè°å·¥ä½ãå¾å¿«ï¼æ们å°å¦ä¹ Node-gyp é对 Windows 10 çæç¨ ã
é¤éä½ çæºå¨ä¸å·²ç»å®è£
äºå®æ´ç VSï¼è¯·ä¸è½½ Visual Studio 2015 社åºç ï¼éæ©èªå®ä¹å®è£
并éå®å®å
¨ç Visual C++ åæ¯ï¼ä¸å¸¦ XP æ¯æï¼ï¼æ¤å¤ï¼å¨å·¥å
·ä¸éæ©Windows SDKsãå¦æå¨å®è£
è¿ç¨ä¸åºç°ä»»ä½å·®éï¼ä½ å¯ä»¥ç¹å»ç¨åºä¸ç¹æ§(Programs and Features)ï¼éæ© VS2015ï¼è¿è¡æ´æ¹ä¸ä¿®æ£ã
å¨ gyp çå®è£
æåä¸è¿æå°äº Windows 7 SDKsï¼ä½æ¯æ们å¨åé¢å·²ç»å®è£
äº Win 8 SDKsï¼æ以å¸æä¸ä¼ç¨å° Win 7 SDKsã
æ¥éª¤5ï¼å®è£
å
ä¾èµ
ç®åï¼ç¬è
æ£å¨å¼å Trace ä¸çåè¦å¾®æå¡ï¼æ以æä¼éè¿ npm -i æ令å®è£
æéçå
ä¾èµãå¾å°çç»æå¦ä¸å¾æ示ï¼
Fsevents æ¯å¯éä¾èµï¼ä¸åªè½ç¨äº OSX ç³»ç»ï¼è¿åªæ¯ä¸ä¸ªè¦åââå
¶ä½æ¨¡å并æ é®é¢ã
该微æå¡ç¨å°äº Postgres ä¸RabbitMQï¼å æ¤ç¬è
ä¹å®è£
äºäºè
ï¼è¿å Erlangï¼ãæ¤å¤ï¼ä¸ OSX brewï¼ä¸ aptãChocolatey ç¸ä¼¼çä¸æ¬¾å
管çå¨ï¼ä»¥å rocketï¼ä¸æ¬¾æå¡ç®¡çå¨ï¼é
ç½®ç¸æ¯ï¼å¯ä¸çä¸åæ¯æå¿
é¡» æå¨å¨ 15672 端å£å¯ç¨ web 管çå ã
å¨æ°æ®åºç«¯ï¼ç¬è
æ·»å äºé»è®¤ç¨æ·ï¼å¹¶å建äºä¸ä¸ªæ°æ®åºãä¸è¿ï¼è¿äºé½å¯ä»¥å¨ PgAdmin 客æ·ç«¯è½»æ¾å®æã
æ¥éª¤6ï¼å¤çç¯å¢åé
é常ï¼Node.js 项ç®é½é«åº¦ä¾èµç¯å¢åéã
ä»ä¸é¢ç项ç®æªå¾ä¸å¯ä»¥çå°ï¼IS_INTERACTIVE æ¯ä¸ä¸ªç¯å¢åé(env var)ï¼è¿å¨ Linux ä¸ OSX ç³»ç»ä¸å¾å®¹æå®ä¹ï¼ä½æ¯å¨ Windows ä¸åæä¸ç¹ä¸åã
å¨ package.json çèæ¬é¨åï¼ä½ å¯ä»¥ä½¿ç¨å®è£
å¨æ¬å°ç node 模åãç¬è
å»ºè®®ä½ å°½éé¿å
éè¿ npm -g æ令å
¨å±å°å®è£
å
ã
æ¤å¤ï¼ç¬è
ä¹ä¸å»ºè®®å¨ Windows (æ´ç²¾ç¡®å°è¯´ï¼å¨è·¨å¹³å°é¡¹ç®ä¸)çèæ¬é¨åç´æ¥æ·»å ç¯å¢åéï¼å
¶å®ï¼æ们æå«çéæ©ã
Npm ä¼ç´æ¥å°è¿äºæ令 ä¼ éè³ OS ï¼å¨æ¬ä¾ä¸ï¼ä¼ éå° NT å½ä»¤è§£éå¨(cmd.exe)ãæ¤å¤ï¼æå¿«æ·ç解å³åæ³æ¯å°èæ¬è¡æ·è´å°æ们ç bash çªå£ï¼å¹¶è¿è¡ä¹ãä½æ¯ï¼çæå½ç¶ï¼è¿ä¸æ¯é¿è¿ç解å³åæ³ãææ°åå¸ç Windows bash shell æ¯æ (ç®åä»å¤äºæµè¯é¶æ®µ)å¾å¯è½ä¼è§£å³æ¤é®é¢ã
ææ¸
æ¥ç解å³æ¹æ³æ¯å¯¹æ¯ä¸èæ¬è¡ä½¿ç¨ä¸æ¡æ令ï¼å¦ä½ æè§ï¼æ们ç npm run lint æ令è¿è¡è¯å¥½ï¼ã
ä»»ä½ä¾èµäº flashvars (临æ¶ç¯å¢åé)æè¯å¾åæ¶å®æ许å¤æä½çæ令ï¼é½åºè¯¥åå¨æ个 /scripts æ件夹ä¸ï¼ä½ä¸º Node å¯æ§è¡çJavaScript æ件ã
ä¸è¦ä½¿ç¨ bash èæ¬ï¼cmd æ æ³å¤çè¿äºèæ¬ãCmd.ex æ¯æ && ï¼å æ¤ä¸¤ä¸æ¡æ令è¿è¡ï¼å°ä¸æ´ä¸ª shell èæ¬ååä¸è¡å°±ä¸è¡äºï¼å°¤å
¶ä¸åºå¸¦æ bash è¯è¨ç¹æ§ï¼ã
为äºæ¯æèæ¬ï¼è¿æ¯å¯è¡çãä½æ¯ä¸ºäºè¿è¡æ们çåºç¨ï¼å°±éè¦è®¸å¤ç¯å¢åéã
å¨ RisingStackï¼æ们å¨å¼åé¶æ®µä¼ä½¿ç¨ nodemon ï¼ä¸è¿ï¼æäºäººæ许ä¼ç¨ pm2ï¼ãNodemon æ¯ä¸æ¬¾æ件çè§å¨ï¼ä¼å¨å¼å§æ¶æ ¹æ®ä½ å®ä¹çç¯å¢åéï¼è§£æ nodemon.json æ件ã
ç¬è
é常ä¼å¨ .gitignore_global æ件ï¼å¨ä¸»ç®å½ä¸ï¼è®°å¾ç¨ git config --global core.excludesfile ~/.gitignore_global è¿è¡åå§åï¼ä¸å å
¥nodemon.* ï¼è¿æ ·ä¸æ¥ï¼æç项ç®ä¸ä¾¿å¯ä»¥æå¤ä¸ª nodemon json 模æ¿ã
尽管ä¸æ¯é常ä¼é
ç解å³æ¹æ¡ï¼ç¬è
é常ä¼å
¨å±å°å®è£
nodemonãææ¶ï¼å¨å¼åä¸ç´æ¥æå¨å¯å¨ nodemonï¼èä¸æ¯éè¿éå½çè¿è¡èæ¬ï¼æ´ä¸ºç®åã
æäºä¸é¢ç jsonï¼ç°å¨å¯ä»¥å¯å¨æçå¾®æå¡äºï¼å¦ä¸æ示ï¼
å½ç¶ï¼ç±äºç¬è
ä¸æ¿çè§æ件ååï¼nodemon å¯è½ä¸æ¯æä½³çä»
ç¨äºè¿è¡èæ¬ç解å³æ¹æ¡ã对äºé£äºæ
åµï¼ç¬è
é常ä¼å° nodemon.json æ件转å为 nodemon.shï¼å°æ¯ä¸ä¸ªç¯å¢åé导åºè³åè
ã请注æï¼ä½ å¯ä»¥æ ¹æ®èªå·±çå好éæå½å该æ件ï¼ä½æ¯ä¸è¦å¿è®°å°å
¶æ·»å è³å¿½ç¥æ件 ââä¸æ
å°è¯¥æ件æ¨å
¥èµæºåºä¼é æå¾å¤§ç麻ç¦ï¼
export NODE_ENV="development"
export PORT=3060
export AMQP_URI="amqp://localhost:5672/"
export EMAIL_SENDER_NAME="Developer" #etc.
ä¹åï¼ç¬è
å¯ä»¥å¨å½ä»¤è¡ä¸ä»¥å
¶ä¸ºæºæ件ï¼æºå¼nodemon.dev.shï¼ââè¿æ ·åæ¯ä¸ºäºæ们å½å使ç¨ç MinGW bashï¼ä½æ¯ï¼å¦æå°å
¶è½¬åä¸ºä¼ ç»ç bat æ件ï¼ä¼æ´ä¸ºç®åãç±äºæ们çæ°æ®åºè®¾ç½®éè¦å 个ç¯å¢åéï¼èç¬è
ä¸æ¿çè§ä¹ï¼è¿æ¯æå¿«ä¹æç²æ´çå¨æ¬å°è¿è¡çæ¹æ³ãå¨äºä¾åºåç¯å¢ä¸ï¼ç¬è
ä¼æ´å åçå°è®¾ç½®ç¯å¢åéã
å°æ¤ä¸ºæ¢ï¼é¡¹ç®é¡ºå©è¿è¡äºï¼å°±å¦åå¨ OSX æ Linux ç³»ç»ä¸ä¸æ ·ã
以ä¸å³ä¸ºæ们ç®ççå¨ Windows 10 ä¸é
ç½® Node.js çæç¨ãnpm ä¸çä¸äºæ¨¡åå¯è½ä¸æ¯æ Windowsï¼ä½æ¯è¿ä¸æ
åµæ£å¨å¥½è½¬ãWindows æ¥æ许å¤ç¾è§å好ç GUI å·¥å
·ï¼Visual Studio ä¹æ¯å¾å¼ºå¤§çæ¦å¨ãå¦æä½ çå¢éæ¿ææ¿æ
é¢å¤çå¼éï¼è¿æ许æ¯ä¸ä¸ªå¯è¡çéæ©ã
OneAPM è½å¸®å©æ¨è½»æ¾éå®Node.js åºç¨æ§è½ç¶é¢ï¼éè¿å¼ºå¤§çTrace è®°å½éå±åæï¼ç´è³éå®è¡çº§é®é¢ä»£ç ã以ç¨æ·è§åº¦å±ç¤ºç³»ç»ååºé度ï¼ä»¥å°ååæµè§å¨ç»´åº¦ç»è®¡ç¨æ·ä½¿ç¨æ
åµã
温馨提示:答案为网友推荐,仅供参考