我正在使用Svelte和Typescript.js内置导入(如fs)

我正在使用 Svelte 和 Typescript 制作一个 Electron 应用程序。我从 this 模板开始就是为了这个目的,但是为了安全起见,它禁用了浏览器/电子前端中的 node.js 内置导入(如 fs)。

我的项目不需要这种改进的安全性,所以我试图让 node.js fs 在 Electron 浏览器中工作。我已经修改了创建浏览器以重新启用 nodeIntegration 的 Electron 后端脚本,这很有效:在 Electron 浏览器控制台中使用 require(“fs”) 记录 fs 库。

但是,在实际的 typescript 前端代码中使用它是行不通的。从捆绑的 JS 来看,rollup 似乎假设 fs 的导入仅作为全局变量可用,并试图猜测它的名称。

在导入 fs 和路径时构建时,我收到以下警告:

(!) Missing shims for Node.js built-ins
Creating a browser bundle that depends on "path". You might need to include https://github.com/snowpackjs/rollup-plugin-polyfill-node
(!) Missing global variable names
Use output.globals to specify browser global variable names corresponding to external modules
fs (guessing 'fs')
path (guessing 'path')

第一个警告表明 404 GitHub 链接似乎是某些 Node 内置库的 polyfill。这不是我想要的,我想要真正的 node.js fs 库。它还通知我我正在创建一个浏览器包 – 我尝试将 @rollup/plugin-node-resolve(由模板使用)的 browser 选项设置为 false,但这没有帮助。

第二个警告似乎只是通知它正在尝试猜测全局变量名称 – 它不应该这样做,它应该保留导入。

如何允许在此处导入 Node.js 模块?链接的模板项目仍然与我当前的非常相似。非常感谢您的帮助。

© 版权声明
THE END
喜欢就支持一下吧
点赞201 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片