当前位置: 首页 > 知识库问答 >
问题:

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

端木令
2023-03-14

这里是node.js的新成员;

我安装了它,并试图使用w3模块(在windows上)。

我已将我的全球回购位置更改为:C:\Users\

npm install ethereum/web3.js --global

当我试着跑的时候

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

错误:找不到模块web3

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

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

它工作。知道是什么导致了这个问题吗?(我已经添加了C:\\用户\\

谢啦


共有1个答案

林劲
2023-03-14

您在全局安装它,所以它被保存到您的用户文件夹,而不是在项目中,节点默认配置为在node_modules中查找。

解决此问题的两个选项:

  • (a)本地保存包
    • 只需使用npm安装以太坊/web3.jsnpm安装以太坊/web3.js--Save将其安装到项目内的node_modules目录。(你必须有CD到你的项目文件夹第一!)
    • 使用“节点路径”:“C:\\Users\\
    • 要在本地安装一个模块,只需执行npm安装my-模块,或者如果您还想将其添加到您的package.json,则执行npm安装my-模块-保存
    • 要全局安装一个模块,使用npm安装my-模块--global

    你应该:

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

    来源: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

 类似资料:
  • 问题内容: 给定完整路径,如何加载Python模块?请注意,该文件可以在文件系统中的任何位置,因为它是配置选项。 问题答案: 对于Python 3.5+,请使用: 对于Python 3.3和3.4,请使用: (尽管在Python 3.4中已弃用此功能。) 对于Python 2,请使用: 编译后的Python文件和DLL具有等效的便捷功能。

  • 问题内容: 给定Python模块的完整路径,如何加载它?注意,该文件可以位于文件系统中的任何位置,因为它是一个配置选项。 问题答案: 对于Python 3.5+,请使用: 对于Python 3.3和3.4,请使用: (尽管在Python 3.4中已弃用此功能。) 对于Python 2,请使用: 编译后的Python文件和DLL具有等效的便捷功能。

  • 问题内容: 试图运行命令: 出现错误: 追溯(最近一次呼叫最近):ImportError中的文件“ ”,第1行,无法导入名称“ path” 我正在使用Django 1.11版 问题答案: 无法导入路径的原因是因为它是Django 2.0中的新增功能,如此处所述:https : //docs.djangoproject.com/en/2.0/ref/urls/#path。 在右下角的该页面上,您可以

  • 问题内容: 这有效: 但这不是: 我越来越: 是否可以(和/或如何)使用“动态”路径?(不对路径进行硬编码或依靠相对路径)。 问题答案: 不,这是不可能的。ES6模块需要能够静态解析其依赖关系,而无需执行模块代码,以便语句能够可靠地工作。模块说明符必须是字符串文字。 但是,您选择的模块加载器应支持使用变量名动态加载模块。但是,您将无法在模块范围中获得绑定标识符(并且无法重新导出它),通常只能在回调

  • 问题内容: 我在搞弄JAX- RS,制作了一个应用程序,该应用程序调用产生JSON的REST服务。我尝试了Jersey,一切都很好,但是由于我的应用程序需要使用JDK5进行构建,因此我不得不切换到RESTEasy。我将web.xml更改为以下内容: 因此,我希望每个以/ rest开头的URL都将由RESTEasy处理。我的服务如下: 使用Jersey可以正常工作,http:// localhost