安装bitcoinjs并启动节点并运行后:
var bitcoin = require('bitcoinjs-lib');
我收到错误:
Error: Cannot find module 'bitcoinjs-lib'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at repl:1:15
at REPLServer.defaultEval (repl.js:262:27)
at bound (domain.js:287:14)
at REPLServer.runBound [as eval] (domain.js:300:12)
at REPLServer.<anonymous> (repl.js:431:12)
at emitOne (events.js:82:20)
当我运行这些命令时,它似乎找到了库:
$ pwd
/usr/local/lib/node_modules
$ ls
bitcoinjs-lib browserify npm uglify-js
$ node
> var bitcoin = require('bitcoinjs-lib');
undefined
我认为它适用于这种情况,因为我正在从库/usr/local/lib/node_modules
如何将模块库添加到节点,以便从任何位置找到所需的库,而不必将目录更改为/ usr / local / lib / node_modules?
我尝试将bash_profile中的路径修改为:
PATH=$PATH:/usr/local/lib/node_modules
但这并不能解决问题。
答案 0 :(得分:2)
要快速完成此操作,您需要设置$NODE_PATH
:
NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules
但是,一般情况下,不应全局安装节点模块(这意味着在/usr/local/lib/node_modules
之类的“系统目录”中。
而是创建项目目录,并在那里安装模块:
$ mkdir my-project
$ cd my-project
$ npm install bitcoinjs-lib
如果在该项目目录中运行Node,require('bitcoinjs-lib')
将起作用。
答案 1 :(得分:2)
一种骇人听闻的方式:
module.paths.unshift(<path>);
process.env.NODE_PATH = <path>
module.constructor._initPaths();
我写了一个Cocos Creator(基于Electron)插件时发现了上述解决方案,该插件在IDE打开期间就被加载了。我需要从该插件中require
来使用utils脚本,该脚本不在任何require路径中。我在Win10的CC和Node.js v10.16.0中测试了第一个代码段。