mac下用nvm安装node.js,引入jquery失败

mac下用nvm安装node.js,然后npm install jquery -g
在任意目录新建一个文件01.js,里面require('jquery');
执行文件 node 01.js
但是报错jquery模块找不到,我去nvm里面找到对应版本的node,查看里面的lib,是看到jquery的,为什么引用不了呢?

阅读 3.5k
3 个回答

在你的任意目录执行npm init,然后一路回车,然后再npm install jquery,现在这样就可以了,全局安装的东西不是说在任意一个目录都可以引用的到,题主你误解了。

下面是补充内容,来自深入浅出Node.js一书

全局模式并不是将一个模块包安装为一个全局包的意思,它并不意味着可以从任何地方通过require()来引用到它。全局模式这个称谓其实并不精确,存在诸多误导。实际上,-g是将一个包安装为全局可用的可执行命令。它根据包描述文件中的bin字段配置,将实际脚本链接到与Node可执行文件相同的路径下,事实上,通过全局模式安装的所有模块包都被安装进了一个统一的目录下,这个目录可以通过如下方式推算出来path.resolve(process.execPath, '..', '..', 'lib', 'node_modules')
如果Node可执行文件的位置是/usr/local/bin/node,那么模块目录就是/usr/local/lib/node_modules。最后,通过软链接的方式将bin字段配置的可执行文件链接到Node的可执行目录下。

不建议直接引用全局安装的模块,如果非要这么做的话,需要在项目目录里link一下:

npm link jquery

虽然都是javascript
但是 jquery 是运行在浏览器里的
node 是本地的一种javascript型 解释语言,不可通用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题