Node.js 如何在烧杯笔记本中加载节点模块?

Node.js 如何在烧杯笔记本中加载节点模块?,node.js,ipython,Node.js,Ipython,我正在使用Bicker notebook,并希望使用一些外部节点模块-但由于Bicker没有更改当前活动文件目录的系统路径,因此我尝试包含流过滤器时遇到错误: Error: Cannot find module 'stream-filter' Error: Cannot find module 'stream-filter' at Function.Module._resolveFilename (module.js:336:15) at Function.Module._loa

我正在使用Bicker notebook,并希望使用一些外部节点模块-但由于Bicker没有更改当前活动文件目录的系统路径,因此我尝试包含
流过滤器时遇到错误:

Error: Cannot find module 'stream-filter'
Error: Cannot find module 'stream-filter'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:286:25)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at eval (eval at processCode (/opt/homebrew-cask/Caskroom/beaker/1.4.2-1-ge55c059/Beaker.app/Contents/Resources/dist/config/plugins/eval/node/app/app.js:45:23), :5:14)
    at processCode (/opt/homebrew-cask/Caskroom/beaker/1.4.2-1-ge55c059/Beaker.app/Contents/Resources/dist/config/plugins/eval/node/app/app.js:45:18)
    at /opt/homebrew-cask/Caskroom/beaker/1.4.2-1-ge55c059/Beaker.app/Contents/Resources/dist/config/plugins/eval/node/app/app.js:32:28
    at callbacks (/opt/homebrew-cask/Caskroom/beaker/1.4.2-1-ge55c059/Beaker.app/Contents/Resources/dist/config/plugins/eval/node/app/node_modules/express/lib/router/index.js:164:37)
    at param (/opt/homebrew-cask/Caskroom/beaker/1.4.2-1-ge55c059/Beaker.app/Contents/Resources/dist/config/plugins/eval/node/app/node_modules/express/lib/router/index.js:138:11)
    at pass (/opt/homebrew-cask/Caskroom/beaker/1.4.2-1-ge55c059/Beaker.app/Contents/Resources/dist/config/plugins/eval/node/app/node_modules/express/lib/router/index.js:145:5)
我想知道如何解决这个问题。我尝试了
process.chdir('/Users/akivalipshitz/Developer/computative_language')
但没有成功,即使流过滤器安装在同一目录下的
node_模块中


那么人们是如何使用节点模块的呢?

在您的案例中,节点代码被评估的上下文是

/opt/homebrew-cask/Caskroom//beaker/1.4.2-1-ge55c059/Beaker.app/Contents/Resources/dist/config/plugins/eval/node/app/app.js
因此,
require()
在那里的
node\u modules
文件夹中查找模块,然后沿着父文件夹递归地向上搜索()

一种解决方案(如果您只处理一个项目或在所有项目中频繁使用此模块)是在那里安装模块:

cd /opt/homebrew-cask/Caskroom//beaker/1.4.2-1-ge55c059/Beaker.app/Contents/Resources/dist/config/plugins/eval/node/app/
npm install stream-filter
另一种(丑陋的)方法可能是在require()中构建一条长的相对路径。在您的情况下,类似于:

require('../../../../../../../../../../../../Users/akivalipshitz/Developer/Computational_Linguistics');

这两种情况都意味着您的代码不能移植到另一个烧杯实例。但是,至少在提出更好的解决方案之前,这可以帮助您进行原型设计。

在撰写本文时,当前版本的烧杯允许您直接从
GUI
导入
npm模块。只需单击
笔记本
->
语言管理器
->
Javascript
,然后将模块名称键入
加载的库
。烧杯从npm注册表自动完成

这适用于
electron
客户端和云托管版本