Ошибка компиляции Webpack (laravel -mix) из-за проблемы в библиотеке / привязке node-sass. js - PullRequest
0 голосов
/ 07 августа 2020

Я использую laravel -mix , npm@6.14.7 и node@12.16.2. У меня уже два дня возникают проблемы с компиляцией ассетов. Недавно я заметил, что получаю ошибки с модулем узла fs и заменил его на fs-extra. Я также добавил следующие строки в свой файл webpack.mx.js.

mix.webpackConfig({
   node: {
     fs: "empty"
   },
   resolve: {
      alias: {
         "fs-extra" : "fs-extra/lib/index.js"
      }
   }
});

По завершении сборки я получил предупреждение

WARNING in ./node_modules/node-sass/lib/binding.js
19:9-37 Critical dependency: the request of a dependency is an expression
 @ ./node_modules/node-sass/lib/binding.js
 @ ./node_modules/node-sass/lib/index.js
 @ ./resources/assets/js/style.js
 @ ./resources/assets/js/main.js
 @ multi ./resources/assets/js/main.js ./resources/assets/sass/main.scss

Выглядело нормально, так как это было просто предупреждение, но мое приложение не отображается в браузере, и я получаю следующую ошибку в консоли.

main.js:5519 Uncaught TypeError: fs.existsSync is not a function
    at Object.hasBinary (main.js:5519)
    at module.exports (main.js:34555)
    at Object.<anonymous> (main.js:29652)
    at Object.<anonymous> (main.js:30117)
    at __webpack_require__ (manifest.js:55)
    at Object.<anonymous> (main.js:26471)
    at Object.<anonymous> (main.js:29633)
    at __webpack_require__ (manifest.js:55)
    at Object.<anonymous> (main.js:7345)
    at __webpack_require__ (manifest.js:55)

Я проверил всюду в Интернете и не смог найти решения. Ниже мой пакет. json файл пакет. json

{
  "private": true,
  "scripts": {
    "dev": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch-poll": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --watch-poll --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "hot": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
    "prod": "npm run production",
    "production": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
  },
  "devDependencies": {
    "axios": "^0.19.2",
    "bootstrap-sass": "^3.3.7",
    "cross-env": "^5.0.1",
    "jquery": "^3.5.1",
    "laravel-mix": "^1.7.2",
    "lodash": "^4.17.19",
    "vue": "^2.1.10"
  },
  "dependencies": {
    "appear": "^1.0.1",
    "compass": "^0.1.1",
    "friendly-errors-webpack-plugin": "^1.7.0",
    "fs-extra": "^9.0.1",
    "gmap3": "^7.2.0",
    "jquery-count-to": "^1.2.1",
    "jquery-countto": "^1.2.0",
    "jquery-ui": "^1.12.1",
    "jquery.appear": "^1.0.1",
    "jquery.flipster": "^1.1.2",
    "minimist": "^1.2.5",
    "node-sass": "^4.14.1",
    "owl.carousel": "^2.3.4",
    "pogo-slider": "^0.7.0"
  }
}

Я пробовал несколько вещей, например, редактировал строку в файле, которая в основном безвредна. require(ext.path), а также сравнение моей версии файла node-sass/lib/bindings.js с тем, что есть на github для пакета, и оно идентично. Так что я очень запутался, так как не смог найти никаких ссылок на ту же проблему, которой занимались. Был бы признателен за помощь с этим, так как я боролся с этим два дня.

...