首页 > 解决方案 > 读取 npm 包的文件

问题描述

我创建了一个名为 test_package_cat 的 npm 包,它应该在开始时读取一个 json 文件(info.json)。因此,index.js(主要条目)和 info.json 处于同一级别。

当我在本地运行 index.js 时,我可以读取该文件。

任何一个:

fs.readFileSync('info.json') 

或者

fs.readFileSync(path.resolve(__dirname, 'info.json')

工作正常。

但是,当我有另一个程序,一个使用该包的React页面时,它无法读取 json 文件。

 cat = require('test_package_cat')
 cat.meow()

当我在本地运行 index.js 时,如果我使用 console.log(__dirname),它会给我 C://......../myProject。但是,在运行 React 应用程序时,console.log(__dirname) 只打印“/”,而当我尝试打印目录/文件时,它什么也没显示。

如何让我的 npm 包读取 info.json 文件?

编辑:经过更多搜索,我设法通过以下方式使其工作:

let info = require('./info.json')
console.log(JSON.stringify(info))

但仍然想知道如何使用“readFile”方式进行操作。

标签: javascriptnode.jsnpm

解决方案


fs仅在 Node 运行时环境中可用。它在浏览器的 JavaScript 运行时环境中不可用。我很惊讶你没有遇到这样的错误。


推荐阅读