首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在烧杯笔记本中加载节点模块?

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

Stack Overflow用户
提问于 2016-01-13 22:22:24
回答 2查看 171关注 0票数 0

我正在使用beaker notebook,并希望使用一些外部节点模块-但由于beaker不会将系统路径更改为当前活动文件的目录,因此我尝试包含stream-filter时会遇到以下错误:

代码语言:javascript
复制
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/Computational_Linguistics'),但没有用,即使流过滤器安装在node_modules中的相同目录中。

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

EN

回答 2

Stack Overflow用户

发布于 2016-02-08 07:55:52

对节点代码求值的上下文在您的示例中

代码语言:javascript
复制
/opt/homebrew-cask/Caskroom//beaker/1.4.2-1-ge55c059/Beaker.app/Contents/Resources/dist/config/plugins/eval/node/app/app.js

因此,require()node_modules文件夹中查找模块,然后沿着父文件夹(see docs)递归向上查找。

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

代码语言:javascript
复制
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()中构建一个长的相对路径。在您的示例中,类似于:

代码语言:javascript
复制
require('../../../../../../../../../../../../Users/akivalipshitz/Developer/Computational_Linguistics');

这两种情况都意味着你的代码不能移植到另一个烧杯实例上。然而,至少在提出更好的解决方案之前,这可以让你继续进行原型开发。

票数 0
EN

Stack Overflow用户

发布于 2016-11-19 01:35:56

在撰写本文时,当前版本的Beaker允许您直接从GUI导入npm modules。只需单击notebook -> Language Manager -> Javascript,然后在Loaded Libraries中键入模块名称。烧杯从npm registry自动完成。

这在electron客户端和云托管版本中都有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34769103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档