ENOENT,没有这样的文件或目录

时间:2013-12-24 01:16:04

标签: node.js express

我从我的节点应用中收到此错误:

ENOENT, no such file or directory '~/Desktop/MyApp/newversion/partials/navigation.jade'

我知道该文件存在,因为当我尝试使用完全复制和粘贴的路径打开文件时,它可以正常工作。 我也知道应用程序正在使用正确的目录,因为它在错误中输出它。

10 个答案:

答案 0 :(得分:20)

我相信之前的答案是对这个问题的正确答案,但是当我尝试安装npm软件包时遇到了这个错误(见下文):

enter image description here

我的修复方法是: npm init --yes

enter image description here

答案 1 :(得分:13)

Tilde扩展是一件外壳。写下正确的路径名(可能是/home/您的用户名/Desktop/etcetcetc)或使用
process.env.HOME + '/Desktop/blahblahblah'

答案 2 :(得分:3)

我也为这个错误所困扰,在尝试了所有其他答案之后,神奇地找到了以下解决方案:

删除package-lock.json和node_modules文件夹,然后再次运行npm install

如果这不起作用,请尝试按顺序运行它们:

npm install
npm cache clean
npm install -g npm
npm install

(分别来自@Thisuri的回答和@Mathias Falci的评论)

,然后重新删除上述文件并重新运行npm install

为我工作!

答案 3 :(得分:2)

我有这个问题:使用路径模块

const path = require('path');

并且不要忘记在第一期创建上传目录。

答案 4 :(得分:1)

  1. 首先尝试npm install,如果问题尚未解决,请依次尝试以下问题。
  2. npm cache clean,然后
  3. npm install -g npm,然后 npm install,最后
  4. ng serve --o来运行项目。 希望这会有所帮助。...

答案 5 :(得分:1)

__dirname 

为您提供当前节点应用程序的rooth目录。

您要使用的情况

__dirname + '/Desktop/MyApp/newversion/partials/navigation.jade';

查看此答案:

App base path from a module in NodeJS

答案 6 :(得分:1)

对我来说,我的代码文件夹位于Windows 10上的Dropbox中。在构建过程中,Dropbox将翻转超过500,000个文件。我将文件夹移出,现在可以正常使用了!

答案 7 :(得分:0)

对于使用npm run watch运行Laravel Mix的用户,只需终止脚本并再次运行命令即可。

答案 8 :(得分:0)

另一种可能性是,如果您提取任何不公开的软件包,您将丢失.npmrc文件。

您将需要在根目录中添加.npmrc文件,并在.npmrc文件内部添加私有/内部注册表,如下所示:

registry=http://private.package.source/secret/npm-packages/

答案 9 :(得分:0)

具体来说,rm yarn.lock然后yarn install为我解决了这个问题。