簡體   English   中英

在 Pushkin 安裝中找不到 Node.js fs 模塊

[英]Node.js fs module not found in Pushkin installation

我已按照此處的指示Mac 上安裝了 Pushkin。 我已經到了導航到http://localhost站點的地步,但是我從瀏覽器收到一個錯誤,並顯示以下堆棧跟蹤:

> Uncaught TypeError: _fs.default.readFileSync is not a function
> at Object../node_modules/pushkinComponent9afd1966f4b248feb0fc0f32c453fb3a/build/index.js (index.js:46)
>    at __webpack_require__ (bootstrap:785)
>   at fn (bootstrap:150)
>   at Module../src/experiments.js (experiments.js:1)
>   at __webpack_require__ (bootstrap:785)
>   at fn (bootstrap:150)
>   at Module../src/components/QuizTile/TakeQuiz.js (Header.js:104)
>   at __webpack_require__ (bootstrap:785)
>   at fn (bootstrap:150)
>    at Module../src/App.js (App.css?498e:37)
>   at __webpack_require__ (bootstrap:785)
>   at fn (bootstrap:150)
>   at Module../src/index.js (index.css?e32c:37)
>   at __webpack_require__ (bootstrap:785)
>   at fn (bootstrap:150)
>   at Object.1 (session.js:9)
>   at __webpack_require__ (bootstrap:785)
>   at checkDeferredModules (bootstrap:45)
>   at Array.webpackJsonpCallback [as push] (bootstrap:32)
>   at main.chunk.js:1

查看 index.js,第 20 行設置了 _fs 並需要 fs 模塊:

var _fs = _interopRequireDefault(require("fs"));

但是,根據npm 文檔, fs 模塊不再存在。 我怎樣才能解決這個問題?

這是普希金中的一個錯誤(特別是在基本實驗模板中),現在已經被壓扁了。 至於它為什么有效,這實際上是一個謎。

修復這個 bug 需要追蹤很多關於 Node 和 React 的相對晦澀的事實,所以我在下面記錄以幫助其他人。

這就是可能發生的事情。 顯然,盡管 'fs' 是 Node 原生的,但它與 create-react-app 不兼容,后者是 Pushkin 前端的腳手架。 有趣的是,普希金前端實際上並不使用“fs”。 相反,單個實驗使用“fs”來讀取其配置文件。

我使用babel-plugin-static-fs修復了這個問題。 在構建時,這個插件實際上會讀取您想要讀取的任何文件的內容,並將其直接寫入構建的 javascript 中。

babel 插件的缺點是你不能將它們與 create-react-app 一起使用。 (相反,create-react-app 的全部意義在於它為你管理你的 babel 和 webpack 配置......這意味着你不能通過添加一個你想使用的額外配置來自定義。)但是,個人Pushkin 實驗獨立於網站前端(使用 create-react-app 的東西)構建,然后作為 npm 模塊加載。 所以在實驗模板中添加 static-fs 插件可以解決這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM