【问题标题】:How to use fs in Jupyter Lab extension/typescript?如何在 Jupyter Lab 扩展/打字稿中使用 fs?
【发布时间】:2022-01-06 21:26:28
【问题描述】:

我尝试使用 fs 读取 Jupyter 实验室扩展中的文件,而 require() 仅查找 /lib 文件夹下的文件,无法找到。

WARNING in ./lib/index.js 41:19-32
Module not found: Error: Can't resolve 'fs' in 
'C:\Users\Username\Documents\github\jupyterlab_extension\lib'
 @ container entry ./extension[0] ./index[0]

如果我使用import,会出现以下错误:

ModuleNotFoundError: Module not found: Error: Can't resolve 'fs' in 'C:\Users\Matt\Documents\github\py2hex\lib'
    at C:\Users\Matt\Documents\github\py2hex\node_modules\webpack\lib\Compilation.js:2011:28
    at C:\Users\Matt\Documents\github\py2hex\node_modules\webpack\lib\NormalModuleFactory.js:795:13
    at eval (eval at create (C:\Users\Matt\Documents\github\py2hex\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:10:1)
    at C:\Users\Matt\Documents\github\py2hex\node_modules\webpack\lib\NormalModuleFactory.js:275:22
    at eval (eval at create (C:\Users\Matt\Documents\github\py2hex\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:9:1)
    at C:\Users\Matt\Documents\github\py2hex\node_modules\webpack\lib\NormalModuleFactory.js:431:22
    at C:\Users\Matt\Documents\github\py2hex\node_modules\webpack\lib\NormalModuleFactory.js:124:11
    at C:\Users\Matt\Documents\github\py2hex\node_modules\webpack\lib\NormalModuleFactory.js:667:25
    at C:\Users\Matt\Documents\github\py2hex\node_modules\webpack\lib\NormalModuleFactory.js:852:8
    at C:\Users\Matt\Documents\github\py2hex\node_modules\webpack\lib\NormalModuleFactory.js:972:5
resolve 'fs' in 'C:\Users\Matt\Documents\github\py2hex\lib'
  Parsed request is a module
  using description file: C:\Users\Matt\Documents\github\py2hex\package.json (relative path: ./lib)
    Field 'browser' doesn't contain a valid alias configuration
    resolve as module
      C:\Users\Matt\Documents\github\py2hex\lib\node_modules doesn't exist or is not a directory
      looking for modules in C:\Users\Matt\Documents\github\py2hex\node_modules
        single file module
          using description file: C:\Users\Matt\Documents\github\py2hex\package.json (relative path: ./node_modules/fs)
            no extension
              Field 'browser' doesn't contain a valid alias configuration
              C:\Users\Matt\Documents\github\py2hex\node_modules\fs doesn't exist
            .js

我已经在 tsconfig 文件中包含了节点:

"types": ["node"],
"typeRoots": ["node_modules/@types"]

并且已经使用 npm install --save @types/node 安装了@types/node。 在我在 tsconfig 文件的“types”中包含“node”之后,Eslint 似乎也没有问题,但是编译器就是无法接受它。

【问题讨论】:

  • JavaScript 扩展在浏览器中运行,而不是在 Node 中运行 - 你不能在浏览器中使用像 fs 这样的节点模块,因为幸运的是它无法访问本地文件系统。您需要使用 jupyter-server 内容 REST API 来检索文件或创建服务器扩展并使用自定义端点公开文件。

标签: node.js typescript jupyter-lab


【解决方案1】:

JavaScript 扩展在浏览器中运行,而不是在 Node 中运行 - 您不能在浏览器中使用像 fs 这样的节点模块,因为幸运的是它无法访问本地文件系统。您需要使用 jupyter-server contents REST API 检索文件或创建 jupyter-server extension 并使用自定义端点公开文件。

【讨论】:

    猜你喜欢
    • 2019-03-15
    • 1970-01-01
    • 2017-08-20
    • 2021-01-10
    • 1970-01-01
    • 2021-06-18
    • 2016-07-04
    • 1970-01-01
    • 2021-07-23
    相关资源
    最近更新 更多