【问题标题】:Error: ENOENT: no such file or directory, scandir错误:ENOENT:没有这样的文件或目录,scandir
【发布时间】:2017-12-28 07:56:37
【问题描述】:

我使用 jhipster 搭建了一个应用程序,它是使用 cassandra db 的微服务网关,并使用 maven 构建,在脚手架后构建良好。我运行 gulp 命令来实时重新加载 ui。

我在导航栏和它的主页上做了一些改动。 这也是工作文件并在主页和导航栏的 json 文件中进行了一些更改,并在添加搜索框等时进行了一些小的更改。

重新加载失败。我停止 gulp & maven 并重新启动它们。 maven 正在构建,但再次没有在 localhost 中加载站点

当我运行 gulp 时,它显示了这个错误。

 gulp
fs.js:952
  return binding.readdir(pathModule._makeLong(path), options.encoding);
                 ^

Error: ENOENT: no such file or directory, scandir '/home/hartron/foodnetteam/codebase/mandi/node_modules/node-sass/vendor'
    at Error (native)
    at Object.fs.readdirSync (fs.js:952:18)
    at Object.getInstalledBinaries (/home/hartron/foodnetteam/codebase/mandi/node_modules/node-sass/lib/extensions.js:121:13)
    at foundBinariesList (/home/hartron/foodnetteam/codebase/mandi/node_modules/node-sass/lib/errors.js:20:15)
    at foundBinaries (/home/hartron/foodnetteam/codebase/mandi/node_modules/node-sass/lib/errors.js:15:5)
    at Object.module.exports.missingBinary (/home/hartron/foodnetteam/codebase/mandi/node_modules/node-sass/lib/errors.js:45:5)
    at module.exports (/home/hartron/foodnetteam/codebase/mandi/node_modules/node-sass/lib/binding.js:15:30)
    at Object.<anonymous> (/home/hartron/foodnetteam/codebase/mandi/node_modules/node-sass/lib/index.js:14:35)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)

谁能告诉我解决办法

【问题讨论】:

  • 哪个版本的节点?节点-v
  • 我使用的是节点版本 6.11.1

标签: maven cassandra gulp jhipster


【解决方案1】:

我有时在启动 gulp 服务器时也会收到此错误。我的解决方法是运行:

npm rebuild node-sass

然后 gulp 很好地开始了。

【讨论】:

  • 我在尝试使用$ node keystone 运行KeystoneJS 网站时收到相同的错误,您的解决方法解决了该错误。谢谢
  • 我得到了错误'错误:ENOENT:没有这样的文件或目录,scandir'**/node_modules/node-sass/vendor',这个解决方案帮助我解决了它。谢谢。
  • 谢谢。我在 Angular 项目中遇到了同样的问题,并通过这个命令解决了。新的“npm install”无法修复我的错误。旧的“node-sass”版本似乎有问题。 github.com/sass/node-sass/issues/1918
  • 我的情况(在linux中),有必要预先下载安装程序“nodejs node_modules/node-sass/scripts/install.js”然后重建
  • 这对我有用。我正在使用 webpack,但当一切都停止工作时,我仍然在使用braintree-dropin!谢谢!
【解决方案2】:

这对我有用

$npm update
$npm install
$node node_modules/node-sass/scripts/install.js
$npm rebuild node-sass

【讨论】:

  • 这对我有用,除了在第 3 行我用“node”替换了“nodejs”
  • 安装时不执行预安装脚本。也为我工作。刚刚替换为全局安装目录:)
  • node node_modules/node-sass/scripts/install.js 也可以。
  • 如果你之前因为某种原因运行过:npm config set ignore-scripts true,那么节点绑定将不会被安装。这是我的问题,正在运行:node node_modules/node-sass/scripts/install.js 解决了我的问题
  • 是的。 @vr_driver 说了什么。只运行node node_modules/node-sass/scripts/install.js 为我工作谢谢!
【解决方案3】:

就我而言,只有在执行此命令后才会有所帮助:

node node_modules/node-sass/scripts/install.js

然后会有/node_modules/node-sass/vendor文件夹

【讨论】:

    【解决方案4】:

    某些文件在 NodeJS 的本地版本中可能不可用,有时 NodeJS 不会发送有关它的消息。在这种情况下,--force 很有帮助。

    npm install node-sass --force
    

    npm rebuild node-sass --force
    

    【讨论】:

      【解决方案5】:

      我刚刚修复了这个错误。这是因为我试图从错误的文件夹运行项目。

      【讨论】:

        【解决方案6】:

        这是node-sass 旧版本的问题。它不会在node_modules/node-sass 中创建vendor folder。我已经更新了 node-sass 的版本,对我来说效果很好。

        我的旧版本 node-sass 是 3.1.0

        我只是做了:

        npm install node-sass@3.7.0

        这也应该可以解决您的问题。

        【讨论】:

          【解决方案7】:

          重建 node-sass 或者只是重新安装所有东西,以防 node-sass 重建不起作用。

          npm rebuild node-sass
          

          rm -rf node_modules && npm install
          

          npm rebuild
          

          npm ci
          

          或 只需手动删除 node_modules 和 package-lock.json 并运行 npm i

          【讨论】:

            【解决方案8】:

            vendor 目录是在 npm 安装期间创建的。尝试删除您的 node_modules 并运行npm install

            【讨论】:

              【解决方案9】:

              确保您拥有 config.json 文件。然后执行npm installnpm start

              如果您没有此配置文件,则可能会出现此错误。

              【讨论】:

                【解决方案10】:
                1. 从 node\npm-cache 中删除 node-sass 文件夹
                2. npm 重建 node-sass

                【讨论】:

                  【解决方案11】:

                  我做了下面的代码,

                  sudo npm rebuild node-sass
                  mvn clean install
                  

                  【讨论】:

                  • MVN?它适用于节点还是java!
                  【解决方案12】:

                  用新版本更新你在 package.json 中的 gulp-sass

                  "gulp-sass": "3.1.0" // 3.1.0 or later 
                  

                  这是我关注的链接https://github.com/dlmanning/gulp-sass/issues/508

                  【讨论】:

                    【解决方案13】:

                    不需要删除节点模块,因为你的sass-loader版本不同

                    1. 删除 package-lock.json
                    2. npm 卸载 node-sass --save
                    3. npm i node-sass --save

                    【讨论】:

                      猜你喜欢
                      • 2021-04-27
                      • 2021-12-05
                      • 2021-12-04
                      • 1970-01-01
                      • 2022-09-30
                      • 2022-06-28
                      • 2019-10-14
                      • 2019-09-07
                      • 1970-01-01
                      相关资源
                      最近更新 更多