gpt4 book ai didi

node.js - Nodejs - 除非使用完整路径,否则无法导入模块

转载 作者:太空宇宙 更新时间:2023-11-03 23:01:26 24 4
gpt4 key购买 nike

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

我已将我的全局存储库位置更改为: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 添加到系统路径)。

最佳答案

您在全局安装它,因此它被保存到您的用户文件夹中,而不是在项目中,并且 Node 默认配置为在 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 路径

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

请参见此处:http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders

关于node.js - Nodejs - 除非使用完整路径,否则无法导入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47163198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com