首页 > 解决方案 > Laravel 混合 - UnhandledPromiseRejectionWarning:错误:ENOENT:没有这样的文件或目录

问题描述

我想我在某个地方有安装问题。我已经更新到最新的节点和 npm,我在我的根目录中安装了 npm。当我执行“npm run dev”时,它找不到“C:\public\css\site.css”。嗯,没错!但它不应该在那个地方寻找文件。在我运行命令后,文件夹 C:\xampp734\templatedocs 中的文件 site.css 会更新,但也会出现错误消息。

那么,是什么导致了这条消息?

我的 webpack.mix.js

let mix = require('laravel-mix');

mix.js('resources/js/bootstrap.js', 'public/libs/bootstrap/js')
    .js('resources/js/mobilenav.js', 'public/js')
    .js('resources/js/pixieLib.js', 'public/js')
    .js('resources/js/rangeslider.js', 'public/js')
    .js('resources/js/site.js', 'public/js')
    
    .sass('resources/sass/bootstrap.scss', 'public/libs/bootstrap/css')
    .sass('resources/sass/site.scss', 'public/css')
    
    .copyDirectory('node_modules/@glidejs/glide/dist', 'public/plugins/glide')
    .version();

我的 package.json

{
  "private": true,
  "scripts": {
    "dev": "npm run development",
    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "npm run development -- --watch",
    "watch-poll": "npm run watch -- --watch-poll",
    "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --disable-host-check --config=node_modules/laravel-mix/setup/webpack.config.js",
    "prod": "npm run production",
    "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --config=node_modules/laravel-mix/setup/webpack.config.js"
  },
  "devDependencies": {
    "axios": "^0.19",
    "cross-env": "^7.0",
    "laravel-mix": "^5.0.1",
    "lodash": "^4.17.19",
    "postcss": "8.1",
    "resolve-url-loader": "^3.1.0",
    "sass": "^1.15.2",
    "sass-loader": "^8.0.0",
    "vue-template-compiler": "^2.6.12"
  },
  "dependencies": {
    "@glidejs/glide": "^3.4.1",
    "bootstrap": "^4.3.1",
    "bootstrap.native": "^3.0.14",
    "diff-match-patch": "^1.0.5",
    "node-sass": "^4.14.1",
    "popper.js": "^1.16.1"
  }
}

我的命令行

C:\xampp734\templatedocs>npm 运行开发

dev npm 运行开发

开发跨环境 NODE_ENV=开发 node_modules/webpack/bin/webpack.js --progress --config=node_modules/laravel-mix/setup/webpack.config.js

发出 SizeLimitsPlugin 后 98%

DONE 53404ms 9:24:47 PM 编译成功

(节点:4412)UnhandledPromiseRejectionWarning:错误:ENOENT:没有这样的文件或目录,在 Object.openSync(fs.js:476:3)在 Object.readFileSync(fs. js:377:35) 在 File.read (C:\xampp734\templatedocs\node_modules\laravel-mix\src\File.js:166:19) 在 File.version (C:\xampp734\templatedocs\node_modules\laravel- mix\src\File.js:173:25) 在 Manifest.hash (C:\xampp734\templatedocs\node_modules\laravel-mix\src\Manifest.js:52:65) 在 C:\xampp734\templatedocs\node_modules\ laravel-mix\src\webpackPlugins\CustomTasksPlugin.js:96:26 在 Collection.each (C:\xampp734\templatedocs\node_modules\collect.js\dist\methods\each.js:21:14) 在 CustomTasksPlugin.applyVersioning ( C:\xampp734\templatedocs\node_modules\laravel-mix\src\webpackPlugins\CustomTasksPlugin.js:95:37) 在 C:\xampp734\templatedocs\node_modules\laravel-mix\src\webpackPlugins\CustomTasksPlugin.js:16:30 at runMicrotasks () at processTicksAndRejections (internal/process/task_queues.js:93:5) (使用node --trace-warnings ...显示警告的创建位置)(节点:4412)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。要在未处理的 Promise 拒绝时终止节点进程,请使用 CLI 标志--unhandled-rejections=strict(请参阅 https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。(拒绝编号:7)

标签: npmwebpack

解决方案


我有同样的问题。当我们在没有 laravel 的情况下使用 laravel mix 时,我们必须设置一个公共路径:

mix.setPublicPath('public');

来源:https ://laravel-mix.com/docs/6.0/faq#does-this-tool-require-that-i-use-laravel


推荐阅读