Symfony 4使用Webpack Encore的createSharedEntry报错求助
解决Symfony 4 + Webpack Encore编译依赖未找到的问题
我来帮你排查这个Webpack Encore编译报错的问题,你遇到的“依赖未找到”错误通常和文件路径、依赖安装或者配置细节有关,咱们一步步来解决:
1. 先检查文件拼写和路径
首先我注意到你配置里的Bootstrap拼写错了!比如assets/css/bootrap.min.css和assets/js/bootsrap.min.js里少了一个t,正确的拼写是Bootstrap。这种低级拼写错误是最常见的原因,先把所有文件名和路径核对一遍,确保和项目里实际存在的文件完全一致。
2. 确认依赖的引入方式
如果你是手动把Bootstrap、jQuery这些文件放到assets目录下的,那路径没问题的话就继续往下看;但如果是通过yarn/npm安装的依赖,那直接引用本地assets路径就会找不到文件——因为这些依赖是存在于node_modules目录里的。
这种情况下,你应该用包名来引用,修改webpack.config.js的配置:
.createSharedEntry('vendor', [ // 用包名引用node_modules里的依赖 'bootstrap/dist/css/bootstrap.min.css', 'jquery/dist/jquery.min.js', 'jquery-migrate/dist/jquery-migrate.min.js', 'popper.js/dist/umd/popper.min.js', 'bootstrap/dist/js/bootstrap.min.js', // 你的自定义SCSS文件保持路径不变 'assets/css/custom.scss', 'assets/css/components.scss', 'assets/css/core.scss', 'assets/css/global.scss' ])
同时要确保这些依赖已经正确安装,执行命令:
yarn add bootstrap jquery jquery-migrate popper.js --dev
3. 启用SCSS编译支持
你在配置里引用了.scss文件,要确保Webpack Encore已经启用了SCSS加载器。在webpack.config.js里添加:
Encore // ...其他已有配置 .enableSassLoader() // 启用SCSS编译
然后安装必要的依赖:
yarn add sass-loader sass --dev
4. 清理缓存重新编译
有时候缓存会导致一些奇怪的编译问题,试试清理Encore的缓存再重新编译:
yarn run encore dev --clear-cache
先从拼写错误这个最容易修复的点开始排查,应该能解决大部分问题。如果还是报错,可以把具体的依赖未找到的提示信息贴出来,能更精准地定位问题。
内容的提问来源于stack exchange,提问作者modogo2000
相关产品推荐
相关产品推荐

