Laravel/Vue3项目运行npm run dev报os/path/fs模块不存在webpack错误
问题根因
你使用的Laravel Mix 6.x版本底层依赖Webpack 5,Webpack 5不再默认内置Node.js核心模块的浏览器polyfill,依赖包clean-css中用到了os/path/fs这类仅Node环境可用的模块,因此打包时触发报错。
解决步骤
- 安装缺失的polyfill依赖
npm install os-browserify path-browserify --save-dev
- 修改
webpack.mix.js配置,新增Webpack自定义规则
修改后的完整配置如下:
const mix = require('laravel-mix'); mix.webpackConfig({ resolve: { fallback: { "os": require.resolve("os-browserify/browser"), "path": require.resolve("path-browserify"), "fs": false // 浏览器环境无需fs模块,直接禁用即可 } }, // 可选:消除开头的Critical dependency警告 module: { parser: { javascript: { dynamicImportRequire: false } } } }) mix.js('resources/js/app.js', 'public/js') .vue() .postCss('resources/css/app.css', 'public/css', [ // ]);
- 清空缓存后重新执行打包命令
npx mix clear npm run dev
内容的提问来源于stack exchange,提问作者Hubert1957
相关产品推荐
相关产品推荐

