Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js fs不';如果我将模块发布到npm,则无法获取文件_Node.js_Npm_Fs - Fatal编程技术网

Node.js fs不';如果我将模块发布到npm,则无法获取文件

Node.js fs不';如果我将模块发布到npm,则无法获取文件,node.js,npm,fs,Node.js,Npm,Fs,我在向npm发布模块时遇到了一个问题 以下是文件结构: - node_modules - lib -- file.txt - index.js - package.json 我是这样用的: var a = fs.readFileSync('./lib/file.txt'); 它在地方发展中起作用。但当我将我的模块发布到npm时,它会说: Error: ENOENT, no such file or directory './lib/file.txt' 此错误来自fs,它无法获取文件。它

我在向npm发布模块时遇到了一个问题

以下是文件结构:

- node_modules
- lib
  -- file.txt
- index.js
- package.json
我是这样用的:

var a = fs.readFileSync('./lib/file.txt');
它在地方发展中起作用。但当我将我的模块发布到npm时,它会说:

Error: ENOENT, no such file or directory './lib/file.txt'
此错误来自fs,它无法获取文件。它是关于嵌套节点\模块文件夹的吗

我的意思是,当我想在clear文件夹中测试我的模块时,我会安装模块:

npm install <my-module-name>
因此,新结构成为:

- node_modules
  -- my-module-name
     -- node_modules
     -- lib
        -- file.txt
     -- index.js
     -- package.json
- test.js

有什么想法吗?

这是因为
fs.readFileSync
正在查找相对于当前工作目录的文件。尝试使用
\uuu dirname

var path = require('path');

var a = fs.readFileSync(path.join(__dirname, 'lib', 'file.txt'));

您的
package.json
是否有
“main”:“index.js”
?@CodyGustafson是的,它已经读取index.js文件了。我想不然它就不能得到“./lib/file.txt”路径,对吗?
var path = require('path');

var a = fs.readFileSync(path.join(__dirname, 'lib', 'file.txt'));