2015-06-15 53 views
1

安裝NodeJS後,您的計算機上將會有一個名爲NodeJS的可執行文件,它是一個shell。我想知道我能做些什麼...在這裏你可以運行JS代碼,例如,在瀏覽器的控制檯中,很棒。使用NodeJS提供的shell

現在,是否有可能在需要模塊在那個環境?這樣做,我可以使用這些模塊提供的功能來運行一些JS代碼,這些模塊是IMO真的很棒。

我試過用-g選項(例如npm install -g express)安裝模塊;然後(在殼)我想運行require('express')但doesen't工作,它說:

Error: Cannot find module 'express' at Function.Module._resolveFileName ...

想法?

+0

在'cmd'中運行:'npm ls'和'npm root'和'npm list -g'告訴我們;) – befzz

回答

1

issue #5431,看起來就像Node.js的REPL沒有發現在全球安裝的模塊,這是預期的行爲。

article linked from that issue,它讀取:

  1. 如果你安裝你想要在你的程序中使用,使用需要的東西(「不管」),然後安裝在本地,在根你的項目。

這是你的情況,SOU需要安裝express本地

$ npm install express 
$ node 
> var express = require('express'); 
undefined 

注意,你undefined如因var語句的結果,但它確實工作。

+0

不應該引用這個問題。這是一種正常的行爲。全局只是版本以非明確方式進行評估的另一個環境。作爲本地模塊是另一個上下文。 –

1

選擇一個目錄,然後運行npm install express --save,然後node,最後var express = require('express');

0

上面的答案是正確的。只是想再添點:去一個可執行文件的文件夾,你會發現那裏的目錄node_modules

nodejs 
|-------node_modules 
|  |-----------npm 
|-------node 
|-------more staff 

如果粘貼內node_modules模塊的任何文件夾也將能夠在被要求nodeJS外殼。

無論如何,我更喜歡其他的解決方案,而不是CTR-C + CTRL-V

+0

是的,它會在兩個空ptoject之間正常工作。但是,如果您在現有項目之間進行粘貼,則可能會遇到版本錯誤。這就是npm的戰鬥。好的方法是使用npm。注意'''--save'''可以幫助你做到這一點。另外如果你想加快安裝速度,你可以考慮使用'''sinopia''',它是本地緩存。 –