第一次启动 yarn 运行 encore dev 时出错

Error when launch yarn run encore dev for the first time

我在 Symfony 3.4 项目中第一次配置 webpack.config.js 时遇到问题。 我按照 symfony 的文档来安装和配置 encore,但我不知道为什么我总是出现这个错误:

$ yarn run encore dev
yarn run v1.6.0
$ [my_root_project_path]\node_modules\.bin\encore dev
Running webpack ...
ERROR  Failed to compile with 1 errors10:01:31
 error
Entry module not found: Error: Can't resolve 'web/build/app.js' in '[my_root_project_path]'
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

我的 webpack.config.js 文件是这样的:

// webpack.config.js
var Encore = require('@symfony/webpack-encore');
Encore
 .setOutputPath('web/build/')
 .setPublicPath('/build')
 .addEntry('app', 'web/build/app.js')
 .autoProvidejQuery()
 .enableSourceMaps(!Encore.isProduction())
 .cleanupOutputBeforeBuild()
;
module.exports = Encore.getWebpackConfig();

问题是否来自 Encore 没有的文件权限?反正我迷路了,不知道怎么办

配置:

注: 我知道可能还有另一个 post 同类问题,但我认为目前我已经测试了所有内容,但我的问题仍然存在。我一直在倾听,如果您认为有一个 Whosebug post 可以解决我的问题,我会让您与我分享。

你的问题出在addEntry路径

.addEntry('app', 'web/build/app.js')

没有指向正确的文件。正确的语法是:

.addEntry(<name_of_the_entry>, <path_to_the_entry>)

其中 path_to_the_entry 必须指向要添加到构建中的 js 文件,而不是直接指向构建路径。该文件应位于不同的文件夹中,例如'your_project_root/assets/js/your_js_file.js' 如文档中所述

Encore 将在您的 web/build 文件夹中创建适当的 .js 文件(如果您在 .js 文件中添加了一个文件,则可能是 .css),以便您的用户可以访问这些文件。