1

这里是 node.js 的新手;

我安装了它并尝试使用 w3 模块(在 Windows 上)。

我已将全局 repo 位置更改为:C:\Users\<user>\.node_modules_global 并使用以下命令安装了 web3 模块,该命令在 node_modules_global 文件夹上创建了一个新文件夹;:

npm install ethereum/web3.js --global

当我尝试跑步时

Web3 = require('web3')它,我得到一个

Error: Cannot find module 'web3'

但是,如果我使用完整路径:

Web3 = require('C:\\Users\\<user>\\.node_modules_global\\node_modules\\web3')

有用。知道什么可能导致这个问题吗?(我已添加C:\\Users\\<user>\\.node_modules_global到系统路径)

谢谢

4

1 回答 1

3

您在全局安装它,因此它被保存到您的用户文件夹,而不是在项目中,并且节点默认配置为在node_modules.

解决此问题的两个选项:

  • (a) 在本地保存包
    • 仅使用npm install ethereum/web3.jsnpm install ethereum/web3.js --save将其安装到node_modules项目中的目录中。(您必须先 cd 进入您的项目文件夹!)
  • (b)默认情况下,让 Node 在您的全局文件夹中查找
    • 利用"NODE_PATH": "C:\\Users\\<user>\\.node_modules_global\\node_modules"

如何在本地安装,如何在全局安装

  • 要在本地安装模块,只需执行npm install my-module,或者如果您还想将其添加到 package.json 中,请执行npm install my-module --save
  • 要全局安装模块,请使用npm install my-module --global

何时使用本地和全局模块

你应该:

  • 如果您要 require() 它,请在本地安装一个模块。
  • 如果要在命令行上运行它,请全局安装一个模块。

来源:https ://nodejs.org/en/blog/npm/npm-1-0-global-vs-local-installation/

更改节点路径

您可以将NODE_PATH环境变量设置为您自己的值,您的应用程序将默认查看那里,而不是项目node_modules目录。

见这里:http ://nodejs.org/api/modules.html#modules_loading_from_the_global_folders

于 2017-11-07T16:51:58.033 回答