Node.js fs不';如果我将模块发布到npm,则无法获取文件
我在向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,它无法获取文件。它
- 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'));