How to resolve Nodejs: Error: ENOENT: no such file or directory
How to resolve Nodejs: Error: ENOENT: no such file or directory
我目前 运行 在服务器上成功安装了一个 Nodejs 网络应用程序。现在我正在尝试在我的开发服务器上设置一个本地副本。
我目前安装了 Nodejs、NPM 和 Mongo,就像我在生产服务器中安装的一样,但是当我尝试启动节点服务器时出现以下错误
什么可能导致此问题?
embah@devsertwo:~/node/nodeapp$ node app.js
fs.js:640
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT: no such file or directory, open '/home/embah/node/nodeapp/config/c
onfig.json'
at Error (native)
at Object.fs.openSync (fs.js:640:18)
at Object.fs.readFileSync (fs.js:508:33)
at Object.<anonymous> (/home/embah/node/nodeapp/config/config.js:4:28)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/home/embah/node/glorby/app.js:13:16)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:509:3
embah@devsertwo:~/node/nodeapp$
您的应用期望在 /home/embah/node/nodeapp/config/config.json
找到一个文件,但该文件不存在(ENOENT
的意思)。因此,您要么需要创建预期的目录结构,要么配置您的应用程序,使其在 config.json
.
的正确目录中查找
我也遇到了这个问题,因为我打开了另一个控制台 window,它正在 运行 应用程序,我正试图在另一个控制台中重新运行 yarn start window。
第一个执行的纱线阻止了第二个纱线的写入。所以我刚刚杀死了第一个进程并且它起作用了
在浏览了这么多链接和线程并一次又一次地感到沮丧之后,我进入了基础知识并大获成功!它有帮助。我只是做了:
npm install
我不知道,但这可能对某人有帮助:)
它发生在我身上。我误删除了一些css个文件,然后又复制回来了。这个错误就是那个时候出现的。所以我重新启动了我所有的码头工人和其他服务器,然后它就消失了,也许这对某些人有帮助:)
以我为例
import { Object } from '../config/env';
给我错误。
我通过更改地址解决了这个问题:
import { Object } from './../config/env';
@olleh 答案有效,因为 npm install
将在执行它的当前路径中创建一个 node_modules
目录。因此,在使用 文件服务器系统模块 时,下面的声明从 node_modules
.
的顶级目录定位文件
const fs = require('fs')
92% 额外的资产处理 scripts-webpack-plugin× `wdm`:错误:ENOENT:没有那个文件或目录,打开....==> 如果有人遇到这样的错误,您应该执行以下操作:
1) 您应该检查 angular.json 文件中的文件路径是否正确。
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/bootstrap/dist/js/bootstrap.js"
],
2) 您应该按 crtl+c 并重新 运行 项目。
运行
npm run scss
npm run start
终端中的那个顺序为我解决了这个问题。
就我而言,问题发生在我从 git 分支切换到另一个分支后,对一些旧文件的引用仍保留在 "node_modules/.cache" 目录中的脚本中。
删除 "node_modules"、"build" 目录和 "package-lock.json" 文件,然后发出 "npm install" 命令已解决我的问题
我尝试了一些东西并得到了这个错误错误:ENOENT:没有那个文件或目录,打开 'D:\Website\Nodemailer\Nodemailer-application\views\layouts\main.handlebars'
我得到的修复是按字面意义构建目录。这意味着完全按照显示的方式标记项目,很奇怪我给了计算机它想要的东西。
我通过简单地在出现错误的位置创建一个空白文件解决了这个错误。如果您收到目录错误,您也可以尝试创建空目录。祝一切顺利。
在我的例子中,问题是由使用从脚本执行目录而不是项目根目录开始的文件路径引起的。
我的目录结构是这样的:
项目文件夹/
├── package.json
├── 脚本文件夹/
│ ├── myScript.js
我打电话给 fs.createReadStream('users.csv')
而不是正确的 fs.createReadStream('scriptFolder/users.csv')
如果没有布局 folder.Just 使用这样的路由:
app.get('/', (req, res) => {
res.render('something', { layout: false });
})
这里用您的文件夹名称更改一些内容,希望它能修复您的错误。
我在系统级别添加了 PM2_HOME 环境变量,现在它工作正常。
[这对 multer link 很有帮助 github][1]
但对我来说,我必须在服务器文件夹中创建一个 public 文件夹,它也类似于 -cb(null,'public/')。
[1]: https://github.com/expressjs/multer/issues/513
我在创建插件时遇到了 ng-package.json
文件的这个问题。我发现我在 angular.json
中提供了错误的路径。修复了我的文件路径,问题已解决。
可能对某人有帮助。
确保您的 angular.json 文件具有如下所示的“样式”和“脚本”数组 (对于 Angular 12 及以上):
"styles": [
"src/styles.css",
"./node_modules/bootstrap/dist/css/bootstrap.css"
],
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/bootstrap/dist/js/bootstrap.js"
]
完成后,按 CTRL + C,然后 ng serve
如果您使用打字稿进行编码,请记住 transpiled-JS 文件夹是 JS 搜索您的文件的地方,并且肯定无法找到您的 html-文件;因此出现这样的错误。因此,您需要将文件复制到 transpiledJS 文件夹中才能找到它。
我不知道是否有人会看到这个,但我会说出我的答案
首先您需要进入您使用以下命令创建的应用程序目录:
npx create-react-app [app-name]
下一个运行:
sudo npm install
让它安装来自
的所有依赖项
package.json
然后 运行 :
sudo npm start
并确保使用 sudo 命令 运行 它们,因为有时这是绝对必要的。
如果您在项目中使用 expres.js 时遇到同样的错误,这对我有用:
在我的项目中,当我 运行 一个快速应用程序时,我注意到当前工作目录是项目的根目录(当我试图读取位于脚本目录中的文件时)。
它无法 运行 文件,因为 process.cwd() !== __dirname
。
您可以在您尝试读取 json 文件的脚本中查看并控制台记录 process.cwd()
。
我刚刚将路径更改为:
const fs = require('fs');
fs.readFileSync(`${__dirname}\FILENAME`);
我的节点版本不匹配,通过 nvm 安装正确版本的节点有效
我使用 vsc、git 和 nrwl,经常遇到 vsc 执行自动暂存的问题。与 nrwl 结合使用时,它经常会出现问题。简单地取消暂存 vsc 中的文件通常会有所帮助。
奇怪的是,在我的项目中,我第一次 add/remove 一个包时总是会遇到这个错误,但后来我再次 运行 相同的命令并且它 在第二个上工作运行.
我目前 运行 在服务器上成功安装了一个 Nodejs 网络应用程序。现在我正在尝试在我的开发服务器上设置一个本地副本。
我目前安装了 Nodejs、NPM 和 Mongo,就像我在生产服务器中安装的一样,但是当我尝试启动节点服务器时出现以下错误
什么可能导致此问题?
embah@devsertwo:~/node/nodeapp$ node app.js
fs.js:640
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT: no such file or directory, open '/home/embah/node/nodeapp/config/c
onfig.json'
at Error (native)
at Object.fs.openSync (fs.js:640:18)
at Object.fs.readFileSync (fs.js:508:33)
at Object.<anonymous> (/home/embah/node/nodeapp/config/config.js:4:28)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/home/embah/node/glorby/app.js:13:16)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:509:3
embah@devsertwo:~/node/nodeapp$
您的应用期望在 /home/embah/node/nodeapp/config/config.json
找到一个文件,但该文件不存在(ENOENT
的意思)。因此,您要么需要创建预期的目录结构,要么配置您的应用程序,使其在 config.json
.
我也遇到了这个问题,因为我打开了另一个控制台 window,它正在 运行 应用程序,我正试图在另一个控制台中重新运行 yarn start window。
第一个执行的纱线阻止了第二个纱线的写入。所以我刚刚杀死了第一个进程并且它起作用了
在浏览了这么多链接和线程并一次又一次地感到沮丧之后,我进入了基础知识并大获成功!它有帮助。我只是做了:
npm install
我不知道,但这可能对某人有帮助:)
它发生在我身上。我误删除了一些css个文件,然后又复制回来了。这个错误就是那个时候出现的。所以我重新启动了我所有的码头工人和其他服务器,然后它就消失了,也许这对某些人有帮助:)
以我为例
import { Object } from '../config/env';
给我错误。
我通过更改地址解决了这个问题:
import { Object } from './../config/env';
@olleh 答案有效,因为 npm install
将在执行它的当前路径中创建一个 node_modules
目录。因此,在使用 文件服务器系统模块 时,下面的声明从 node_modules
.
const fs = require('fs')
92% 额外的资产处理 scripts-webpack-plugin× `wdm`:错误:ENOENT:没有那个文件或目录,打开....==> 如果有人遇到这样的错误,您应该执行以下操作: 1) 您应该检查 angular.json 文件中的文件路径是否正确。
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/bootstrap/dist/js/bootstrap.js"
],
2) 您应该按 crtl+c 并重新 运行 项目。
运行
npm run scss
npm run start
终端中的那个顺序为我解决了这个问题。
就我而言,问题发生在我从 git 分支切换到另一个分支后,对一些旧文件的引用仍保留在 "node_modules/.cache" 目录中的脚本中。
删除 "node_modules"、"build" 目录和 "package-lock.json" 文件,然后发出 "npm install" 命令已解决我的问题
我尝试了一些东西并得到了这个错误错误:ENOENT:没有那个文件或目录,打开 'D:\Website\Nodemailer\Nodemailer-application\views\layouts\main.handlebars'
我得到的修复是按字面意义构建目录。这意味着完全按照显示的方式标记项目,很奇怪我给了计算机它想要的东西。
我通过简单地在出现错误的位置创建一个空白文件解决了这个错误。如果您收到目录错误,您也可以尝试创建空目录。祝一切顺利。
在我的例子中,问题是由使用从脚本执行目录而不是项目根目录开始的文件路径引起的。
我的目录结构是这样的: 项目文件夹/ ├── package.json ├── 脚本文件夹/ │ ├── myScript.js
我打电话给 fs.createReadStream('users.csv')
而不是正确的 fs.createReadStream('scriptFolder/users.csv')
如果没有布局 folder.Just 使用这样的路由:
app.get('/', (req, res) => {
res.render('something', { layout: false });
})
这里用您的文件夹名称更改一些内容,希望它能修复您的错误。
我在系统级别添加了 PM2_HOME 环境变量,现在它工作正常。
[这对 multer link 很有帮助 github][1]
但对我来说,我必须在服务器文件夹中创建一个 public 文件夹,它也类似于 -cb(null,'public/')。 [1]: https://github.com/expressjs/multer/issues/513
我在创建插件时遇到了 ng-package.json
文件的这个问题。我发现我在 angular.json
中提供了错误的路径。修复了我的文件路径,问题已解决。
可能对某人有帮助。
确保您的 angular.json 文件具有如下所示的“样式”和“脚本”数组 (对于 Angular 12 及以上):
"styles": [
"src/styles.css",
"./node_modules/bootstrap/dist/css/bootstrap.css"
],
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/bootstrap/dist/js/bootstrap.js"
]
完成后,按 CTRL + C,然后 ng serve
如果您使用打字稿进行编码,请记住 transpiled-JS 文件夹是 JS 搜索您的文件的地方,并且肯定无法找到您的 html-文件;因此出现这样的错误。因此,您需要将文件复制到 transpiledJS 文件夹中才能找到它。
我不知道是否有人会看到这个,但我会说出我的答案
首先您需要进入您使用以下命令创建的应用程序目录:
npx create-react-app [app-name]
下一个运行:
sudo npm install
让它安装来自
的所有依赖项package.json
然后 运行 :
sudo npm start
并确保使用 sudo 命令 运行 它们,因为有时这是绝对必要的。
如果您在项目中使用 expres.js 时遇到同样的错误,这对我有用:
在我的项目中,当我 运行 一个快速应用程序时,我注意到当前工作目录是项目的根目录(当我试图读取位于脚本目录中的文件时)。
它无法 运行 文件,因为 process.cwd() !== __dirname
。
您可以在您尝试读取 json 文件的脚本中查看并控制台记录 process.cwd()
。
我刚刚将路径更改为:
const fs = require('fs');
fs.readFileSync(`${__dirname}\FILENAME`);
我的节点版本不匹配,通过 nvm 安装正确版本的节点有效
我使用 vsc、git 和 nrwl,经常遇到 vsc 执行自动暂存的问题。与 nrwl 结合使用时,它经常会出现问题。简单地取消暂存 vsc 中的文件通常会有所帮助。
奇怪的是,在我的项目中,我第一次 add/remove 一个包时总是会遇到这个错误,但后来我再次 运行 相同的命令并且它 在第二个上工作运行.