24

我有

import fs from 'fs'

在我的 package.json 我有

然后我运行命令

>  npm i fs
>  fs@0.0.2 node_modules/fs

接下来在我的 React 商店中,我导入“fs”模块

import fs from 'fs'

但是,当我尝试使用 fs

除了构造函数和其他一些 __methods 之外,我没有看到其他方法。我没有看到 createReadStream 方法或任何其他文件操作方法。

有人知道出了什么问题吗?(使用Webpack)并且可以根据要求提供更多信息,但我已经做到了……

ps:为什么我可以 npm i fs --save 当我阅读其他我不必这样做的帖子时(使用节点 5.5.0)

import Reflux from 'reflux'
import AddItemActions from '../actions/AddItemActions'
import request from  'superagent-bluebird-promise'
import fs from 'fs'

var ImageStore = Reflux.createStore({
  init(){
    .
    .
    .
  },

  decryptImage(file) {
    var reader = new FileReader();
    var info = {}
    reader.onload = (output) => {
      debugger
      request.post("https://camfind.p.mashape.com/image_requests")
        .set("X-Mashape-Key", "KEY")
        .set("Content-Type", "application/x-www-form-urlencoded")
        .set("Accept", "application/json")
        .send({'focus': { 'x': 480}})
        .send({'focus': { 'y': 640}})
        .send({'image_request': {'altitude': 27.912109375}})
        .send({'image_request': {'language': "en"}})
        .send({'image_request': {'latitude': 35.8714220766008}})
        .send({'image_request': {'locale' : "en_US"}})
        .send({'image_request': {'longitude': 14.3583203002251}})
        .send({'image_request': {'image': fs.createReadStream("/path" + 'file.jpg')}})
        .then(function (result) {
          console.log(result.status, result.headers, result.body);
          this.info = result
        },
          function(error) {
            console.log(error);
        })
    }

    reader.readAsDataURL(file);
    return info
  },
  .
  .
  .
  .
})

4

3 回答 3

23

create-react-app他们已经删除了'fs' 。你不能导入它。他们这样做是因为fs它是一个节点核心模块。
你必须找到另一个解决这个问题的方法。看这张票。

于 2018-02-18T20:11:27.607 回答
4

这可能是环境问题。浏览器无法解释和运行一些 Node 服务器端模块,例如fs.

解决方案是在 Node 环境(服务器端)中运行这些fs方法,或者找到一个提供相同功能但为浏览器编写的包。

在这个问题中讨论过...... 找不到模块:错误:无法解析模块'fs'

还有这个问题... 在 React.js、node.js、webpack、babel、express 中使用 fs 模块

于 2018-01-20T19:44:34.717 回答
0

npm i babel-plugin-preval

如果你想像 这样在React中使用 Node 的 fs,你可以在 React 中使用

const greetingContent = preval`
  const fs = require('fs')
  module.exports = fs.readFileSync(require.resolve('./greeting.txt'), 'utf8')
`
console.log(greetingContent);
于 2022-01-07T08:09:37.343 回答