php Bootstrap无法找到symfony/stimulus-bundle

uqzxnwby  于 5个月前  发布在  PHP
关注(0)|答案(1)|浏览(39)

上下文

我正在通过Yves ROCAMORA的“ENI学习”课程“* 学习使用PHP和Symfony开发Web应用程序(第二版)*"学习Symfony。
在“Webpack Encore”一节中,他解释了如何使用Sass和Vue.js来预处理CSS和JavaScript。
但是,我无法让Webpack-Encore与Bootstrap一起工作。

问题

  • 我使用symfony new --webapp来创建应用程序的结构。
  • 然后,composer require symfony/webpack-encore-bundle安装Webpack Encore。
  • 我用npm安装了sass-loadernode-sassbootstrapnpm install返回一个干净的安装。
  • 我确实修改了webpack.js.js来启用Sass loader。
    当我运行npm run watch时,我遇到以下错误:
ERROR  Failed to compile with 1 errors                                  9:54:06

Module build failed: Module not found:
"./assets/bootstrap.js" contains a reference to the file "@symfony/stimulus-bundle".
This file can not be found, please check it for typos or update it if the file got moved.

字符串

我在期待什么

npm run watch应该正确构建应用程序。

我所尝试的

首先,我尝试使用composer安装缺少的包,但似乎stimulus-bundle是Webpack-Encore的一部分,并且它已经在我的项目中。
我注意到指南有一个不同的package.json:我的缺少@hotwired/stimulus@symfony/stimulus-bridge,所以我试图用composer安装它们,但是这些包不能用这种方式安装。我甚至试图手动添加它们(这是一个坏习惯,对吧?),然后运行npm install,但是npm run watch仍然失败,错误语句相同。
在清理了我的项目,然后一丝不苟地遵循指南的每一步之后,我仍然得到同样的错误。

编辑

遇到的问题是,我使用的是Symfony 7.0.1,而这种方法适用于Symfony 6。

6vl6ewon

6vl6ewon1#

我也遇到了同样的问题,我想我现在知道为什么了。“--webapp”选项默认安装“Asset Mapper”。这将与Encore的食谱冲突。Symfony Flex不知道如何处理。所以你有两个选择:
1.删除与AssetMapper相关的所有内容

1.只需启动一个新项目,而不使用--webapp选项
我做了后者,到目前为止,在启动“npm run watch”时没有出现任何错误。此外,在添加“ux-turbo”时,它使用新的包正确更新了“package.json”。这在Asset Mapper中没有发生,无论它的同伴是什么,仍然存在。
请注意,在没有webapp选项的情况下启动项目,将安装项目的绝对 backbone 。您必须添加“template”,“MakerBundle”等组件。

相关问题