常见问题及常见问题

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 4.4,现已不再维护。

本页的更新版本用于Syob娱乐下载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.lockpackage-lock.json

我的应用程序在子目录下

如果你的应用不在你的web服务器的根目录下(例如,它在子目录下,如/ myAppSubdir),您将需要在调用时配置Encore.setPublicPath ()

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's ' asset() '函数使用的文件)ob娱乐下载+ .setManifestKeyPrefix(“构建”)

如果你在用encore_entry_script_tags ()而且encore_entry_link_tags ()树枝捷径(或通过entrypoints.json处理资产在一些其他的方式)你完成了!这些快捷方法从entrypoints.json现在将包含子目录的文件。

jQuery没有定义或者$没有定义

此错误发生在您的代码(或您正在使用的某些库)期望jQuery为全局变量。但是,当你使用Webpack和要求(“jquery”),没有设置全局变量。

修复方法取决于错误是发生在您的代码中,还是发生在您正在使用的某些第三方代码中。看到jQuery插件和遗留应用程序为了解决问题。

未定义webpackJsonp

如果您得到这个错误,可能是因为您忘记添加脚本标记。runtime.js包含Webpack运行时的文件。如果你在用encore_entry_script_tags ()函数,这种情况永远不会发生:文件脚本标记将自动呈现。

在./path/to/file.js中找不到这个依赖项

通常,在你通过yarn或npm安装了一个包之后,你可以要求/导入它来使用它。例如,跑步之后Yarn添加response .jsNPM安装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”);

我需要在第三方模块上执行Babel

为了性能,Encore不处理内部的库node_modules /通过巴别塔。但是,你可以通过configureBabel ()方法。看到配置巴别塔获取详细信息。

我如何集成我的安可配置与我的IDE?

PhpStorm中的Webpack集成和其他ide使您的开发更有效率(例如通过解析别名)。然而,你可能会遇到这样的错误:

1 2 3 4
还不能调用Encore.setOutputPath(),因为运行时环境似乎还没有配置好。确保你正在使用encore可执行文件,或者如果你故意不直接调用encore,首先调用encore . configureruntimeenvironment()。

它失败了,因为Encore运行时环境只在你运行它时配置(例如,当执行时)纱线返场开发).修复此问题调用Encore.isRuntimeEnvironmentConfigured ()而且Encore.configureRuntimeEnvironment ()方法:

1 2 3 4 5 6 7 8
/ / webpack.config.js常量安可=需要“@ob娱乐下载symfony / webpack-encore”如果(!Encore.isRuntimeEnvironmentConfigured()) {Encore.configureRuntimeEnvironment(process.env. env. environment)NODE_ENV | |“开发”);}/ /……Encore配置的其余部分
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。