常见问题及常见问题
编辑本页警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.0,现已不再维护。
读本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。
常见问题及常见问题
我如何部署我的安可资产?
在部署资产时,有两件重要的事情需要记住。
1)运行安可生产
通过运行优化您的资产以用于生产:
1
$/ node_modules /。bin /安可生产
这将减少您的资产,并进行其他性能优化。耶!
但是,应该在哪个服务器上运行这个命令呢?这取决于你如何部署。例如,您可以在本地(或在构建服务器上)执行此操作,并使用rsync或其他工具将构建的文件传输到服务器。或者,您可以先将文件放在生产服务器上(例如,通过git拉取),然后在生产服务器上运行此命令(理想情况下,在流量访问您的代码之前)。在这种情况下,您需要在生产服务器上安装Node.js。
2)只部署构建的资产
的只有需要部署到生产服务器上的文件是最终构建的资产(例如公共/构建
目录)。你做不需要安装Node.js,部署webpack.config.js
,node_modules
目录甚至您的源资产文件,除非你打算跑步安可生产
在您的生产机器上。一旦你的资产建立起来,这些就是只有需要驻留在生产服务器上的东西。
我需要在生产服务器上安装Node.js吗?
不,除非您计划在生产服务器上构建生产资产,不建议这样做。看到我如何部署我的安可资产?.
我应该提交哪些文件到git?我应该忽略哪一个?
您应该将所有文件提交到git,除了node_modules /
目录和构建的文件。你的.gitignore
文件应包括:
1 2 3
/node_modules/ #你传递给Encore.setOutputPath() /public/build的任何路径
你应该提交所有源资产文件,package.json
而且yarn.lock
.
我的应用程序在子目录下
如果你的应用不在你的web服务器的根目录下(例如,它在子目录下,如/ myAppSubdir
),你只需要在调用时配置它Encore.setPublicPrefix ()
:
12 3 4 5 6 7 8 9 10 11 12 13 14
// webpack.config.js Encore // ... .setOutputPath('public/build/').setPublicPath(/构建)+ //这是你的*真实*公共路径+ .setPublicPath (/ myAppSubdir /构建)+ //这是现在需要的,这样你的manifest。Json键仍然是' build/foo.js '+ //例如,你不需要在你的Symfony应用程序中改变任何东西欧宝娱乐app下载地址+ .setManifestKeyPrefix(“构建”);
如果你通过manifest.json处理资产,你完蛋了!的manifest.json
文件现在会在最终路径中包含子目录:
1 2 3 4
{“构建/ app.js”:“myAppSubdir /构建/ app.123abc.js”,“构建/ dashboard.css”:“myAppSubdir /构建/ dashboard.a4bf2d.css”}
jQuery没有定义或者$没有定义
此错误发生在您的代码(或您正在使用的某些库)期望$
或jQuery
为全局变量。但是,当你使用Webpack和要求(“jquery”)
,没有设置全局变量。
修复方法取决于错误是发生在您的代码中,还是发生在您正在使用的某些第三方代码中。看到jQuery和遗留应用程序为了解决问题。
未定义webpackJsonp
如果您得到这个错误,这可能是因为您刚刚添加了一个共享条目但你忘记了要添加脚本
新标签manifest.js
文件。的相关信息脚本标签在那个部分。
在./path/to/file.js中找不到这个依赖项
通常,在你通过yarn安装一个包之后,你可以要求/导入它来使用它。例如,跑步之后Yarn添加response .js
,您尝试要求该模块:
1
需要(“respond.js”);
但是,不是工作,你看到一个错误:
没有发现这种依赖关系:
- 在./assets/js/app.js中response .js
典型地,包将通过添加属性来“宣传”它的“主”文件主要
关键是package.json
.但是有时候,旧的库没有这个。相反,您需要特别要求所需的文件。在本例中,您应该使用的文件位于node_modules respond.js / / respond.src.js不在座位上
.你可以通过:
1 2
//需要一个非最小化的文件需要(“respond.js /桌子/ respond.src.js”);