如何使用 Webpack Encore 在 Heroku 上编译资产?
Posted
技术标签:
【中文标题】如何使用 Webpack Encore 在 Heroku 上编译资产?【英文标题】:How to compile assets on Heroku with Webpack Encore? 【发布时间】:2018-03-22 03:47:40 【问题描述】:我在我的 Symfony heroku 应用程序中添加了一个 heroku/nodejs 构建包,并且我能够安装我的 yarn 依赖项。
但是我无法运行
$ yarn run encore production
无论我在 composer.json 中运行命令,我总是遇到相同的错误Command "encore" not found
:
// composer.json
"compile": [
"node_modules/.bin/encore production",
[•••]
或在 package.json 中
//package.json
"scripts":
"heroku-postbuild" : "yarn run encore production"
[•••]
【问题讨论】:
我终于修好了。我的错误是遵循 Webpack Encore 文档,该文档建议仅为开发依赖项安装 Webpack Encore。我猜它在heroku上下文中不相关(?)。我将所有纱线依赖项安装在"dependencies"
而不是 package.json 中的 "devDependencies"
中,它可以工作!
【参考方案1】:
对于任何来到这里的人,您首先需要按照this question 将节点构建包添加到您的应用程序中。
确保在 php 之前添加节点 buildpack 。
然后,将"node_modules/.bin/encore production"
添加到您的编译中(如问题所示)。
最后,正如评论中所写,不要忘记将 package.json
中的 webpack 依赖项从 devDependencies
更改为 dependencies
。
【讨论】:
【参考方案2】:在你的 package.json 根文件中:
"scripts": ... "heroku-postbuild" : "node_modules/.bin/encore production"
它将运行您的 webpack encore 并运行您的其他 npm 模块。
【讨论】:
这对我帮助很大。"heroku-postbuild" : "encore production"
顺便说一句就够了。【参考方案3】:
我总是以 cd my-project/ && ./node_modules/.bin/encore ...
运行 Encore 命令,这对你有用吗?
【讨论】:
以上是关于如何使用 Webpack Encore 在 Heroku 上编译资产?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 webpack encore 文件之外使用节点模块?
如何使用 Webpack Encore 在 Heroku 上编译资产?
Webpack 5 (Webpack Encore):如何在同一页面上运行多个 webpack 实例并避免任何冲突?
使用 TailwindCSS 和 Symfony Webpack Encore