鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ mac下用nvm安裝node.js,引入jquery失敗

mac下用nvm安裝node.js,引入jquery失敗

mac下用nvm安裝node.js,然后npm install jquery -g
在任意目錄新建一個(gè)文件01.js,里面require('jquery');
執(zhí)行文件 node 01.js
但是報(bào)錯(cuò)jquery模塊找不到,我去nvm里面找到對應(yīng)版本的node,查看里面的lib,是看到j(luò)query的,為什么引用不了呢?

回答
編輯回答
浪婳

不建議直接引用全局安裝的模塊,如果非要這么做的話,需要在項(xiàng)目目錄里link一下:

npm link jquery
2018年5月16日 15:55
編輯回答
吃藕丑

在你的任意目錄執(zhí)行npm init,然后一路回車,然后再npm install jquery,現(xiàn)在這樣就可以了,全局安裝的東西不是說在任意一個(gè)目錄都可以引用的到,題主你誤解了。

下面是補(bǔ)充內(nèi)容,來自深入淺出Node.js一書

全局模式并不是將一個(gè)模塊包安裝為一個(gè)全局包的意思,它并不意味著可以從任何地方通過require()來引用到它。全局模式這個(gè)稱謂其實(shí)并不精確,存在諸多誤導(dǎo)。實(shí)際上,-g是將一個(gè)包安裝為全局可用的可執(zhí)行命令。它根據(jù)包描述文件中的bin字段配置,將實(shí)際腳本鏈接到與Node可執(zhí)行文件相同的路徑下,事實(shí)上,通過全局模式安裝的所有模塊包都被安裝進(jìn)了一個(gè)統(tǒng)一的目錄下,這個(gè)目錄可以通過如下方式推算出來path.resolve(process.execPath, '..', '..', 'lib', 'node_modules')
如果Node可執(zhí)行文件的位置是/usr/local/bin/node,那么模塊目錄就是/usr/local/lib/node_modules。最后,通過軟鏈接的方式將bin字段配置的可執(zhí)行文件鏈接到Node的可執(zhí)行目錄下。

2017年5月26日 13:00
編輯回答
病癮

雖然都是javascript
但是 jquery 是運(yùn)行在瀏覽器里的
node 是本地的一種javascript型 解釋語言,不可通用

2018年2月12日 02:07