Я использую 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 для пакета, и оно идентично. Так что я очень запутался, так как не смог найти никаких ссылок на ту же проблему, которой занимались. Был бы признателен за помощь с этим, так как я боролся с этим два дня.