Nodejs - 除非使用完整路径,否则无法导入模块
Nodejs - Cant import module unless use the full path
这里是 node.js 的新手;
我安装了它并尝试使用 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
添加到 SYSTEM PATH)
谢谢
您在全局安装它,因此它保存在您的用户文件夹中,而不是在项目中,节点默认配置为在 node_modules
中查找。
解决此问题的两个选项:
- (a) 改为在本地保存包
- 只需使用
npm install ethereum/web3.js
或 npm 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
这里是 node.js 的新手;
我安装了它并尝试使用 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
添加到 SYSTEM PATH)
谢谢
您在全局安装它,因此它保存在您的用户文件夹中,而不是在项目中,节点默认配置为在 node_modules
中查找。
解决此问题的两个选项:
- (a) 改为在本地保存包
- 只需使用
npm install ethereum/web3.js
或npm 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