尝试 yarn encore dev 命令时未找到命令 "encore"

Command "encore" not found when trying yarn encore dev command

我目前卡在 Encore/Webpack 安装中。我按照 symfony.com. But when continuing to the simple example 处的步骤操作,但在 运行ning yarn encore dev 处卡住了。我收到错误消息:“找不到命令“encore””。我在安装 Encore 并导航到视图后 运行ning symfony server:start 时也出现错误:

An exception has been thrown during the rendering of a template ("Could not find the entrypoints file from Webpack: the file "path/entrypoints.json" does not exist.").

据我所知 entrypoints.json 应该是自动生成的。我有 Yarn 1.22.10 和 NodeJS 14.16.1.

我做了什么

我执行了命令composer require symfony/webpack-encore-bundleyarn install

  1. 我查看了 StackOveflow 问题 'error Command "encore" not found.' when running 'yarn run encore' in Symfony4, webpack encore dev-server not found /, Error Command "encore" not found. (separate backend webpack), Can't run encore dev
  2. 我执行了命令composer require webpack
  3. 我注意到我的 package.json 没有命令 encore dev 应该存在的脚本对象。我观看了 YouTube 视频并关注了它 (https://youtu.be/Fs_4FMoSO90)。这就是为什么我知道这一点。我想知道为什么我没有它。以下是视频中的 package.json。我的 package.json 只有开发依赖 Bootstrap.
  4. 已执行npm install

Package.json 来自视频:

{
  "devDependencies": {
    "@symfony/webpack-encore": "^0.31.0",
    "core-js": "^3.0.0",
    "regenerator-runtime": "^0.13.2",
    "webpack-notifier": "^1.6.0"
  },
  "license": "UNLICENSED",
  "private": true,
  "scripts": {
    "dev-server": "encore dev-server",
    "dev": "encore dev",
    "watch": "encore dev --watch",
    "build": "encore production --progress"
  }
}

我的package.json:

{
  "devDependencies": {
    "bootstrap": "^5.0.0"
  }
}

我删除了 package.json、package-lock.json 并再次执行 yarn install 并安装了一些包。我不需要 NPM。我已经从我的 Yarn.lock 中得到了 Bootstrap(那是里面唯一的东西)。我仍然有两个错误。

在 Yivi 的建议下,我执行了 composer req webpackyarn installyarn encore dev。不同的是我执行了 composer require symfony/webpack-encore-bundle ,这就是 symfony 网站上安装页面上提到的。 yarn encore dev 命令现在尝试 运行 webpack,但出现以下错误:Error: Encore.enableStimulusBridge is not a recognized property or method. webpack.config.js:26 Object.<anonymous>

webpack.config.js 第 26 行

    // enables the Symfony UX Stimulus bridge (used in assets/bootstrap.js)
    .enableStimulusBridge('./assets/controllers.json')

你的建议奏效了。我用 composer recipes:install symfony/webpack-encore-bundle --force -v 安装了食谱,现在 yarn encore dev 成功编译了 webpack。我现在也知道我不小心将视频中的 package.json 保留在我的项目中,这解释了为什么我的错误从 Command encore not found 变为 Error: Encore.enableStimulusBridge is not a recognized property or method. webpack.config.js:26 Object.<anonymous>