鍍金池/ 問答/HTML/ react中如何使用fs模塊?

react中如何使用fs模塊?

react項目使用webpack打包,可以直接require node中的path模塊。
但是require('fs')的時候會報錯:
圖片描述

網(wǎng)上查了下,在webpack.config里加了這段配置:

node:{
        fs:'empty'
    },

這時編譯可以通過,但是使用時fs={},使用會報錯。

有看到說可以使用browserify的,只使用webpack不能在前端使用fs模塊嗎?

回答
編輯回答
尐飯團

node不是很熟,簡單實用而已。但是fsnode提供的模塊,只能在node環(huán)境中才能執(zhí)行相關方法,如果你的react是要運行在瀏覽器的,那這里是不可能調用fs模塊的,因為瀏覽器并沒有提供fs相關api。在 webpack 執(zhí)行時候可以使用fs是因為webpack本身是運行在node環(huán)境中的,不要把node環(huán)境和瀏覽器環(huán)境弄混了。

2017年8月30日 14:47
編輯回答
糖果果

由于js可以運行在瀏覽器也可能是node。本質上node和瀏覽器都是javascript運行時。

因此首先你要明白一點就是你的代碼最終是運行在哪的, 是瀏覽器還是node。

這也就是為什么webpack有target這個配置的原因。 詳情: https://webpack.js.org/concep...

明白了你的代碼最終運行在哪就好辦了,如果是node,直接修改webpack target配置即可。 webpack便不會對fs等node內置模塊進行打包。如果是瀏覽器, 那你就要好好思考一下了,為什么需要在瀏覽器中使用fs這個模塊。

當然還有一種情況就是你需要在本地中使用fs讀取文件,然后真正打包的時候不打包進去,那么你可以通過webpack的 definePlugin來完成。

希望我的回答可以幫助到你,謝謝~

2017年10月16日 13:59