我正在使用 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)
我已经在线检查了所有地方,但无法提出解决方案。以下是我的package.json文件 package.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上的软件包以及完全一样所以我很困惑,因为我看不到所涉及的同一问题的任何参考。我已经为此奋斗了两天,希望能对此有所帮助。