常见问题与常见问题

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.4,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

常见问题与常见问题

我如何部署安可资产?

有两个重要的事情要记住当部署你的资产。

1)编制资产用于生产

优化你的资产生产运行:

1
美元/ node_modules /。bin /安可生产

会贬低你的资产,让其他的性能优化。耶!

但是,你运行这个命令在服务器应该什么?这取决于你如何部署。例如,您可以执行这个本地(或构建服务器上),和使用rsync或者其他东西生成的文件转移到生产服务器。或者,你可以把你的文件在您的生产服务器上(例如通过git拉),然后运行这个命令生产(理想情况下,前交通支安打您的代码)。在这种情况下,您将需要安装节点。js在生产服务器上。

2)只部署了资产

只有文件需要部署到生产服务器最后,建立资产(如公共/构建目录)。你做需要安装节点。js、部署webpack.config.js,node_modules目录或甚至你的源资产文件,除非你计划跑步安可生产在你的生产机器。一旦你的资产,这些都是只有件事需要住在生产服务器上。

我需要安装节点。js在我的生产服务器?

不,除非你打算生产服务器上建立你的生产资产,这是不可取的。看到我如何部署安可资产?

我应该致力于git哪些文件?我应该忽略,哪些?

你应该提交所有的文件到git,除了node_modules /目录和构建文件。你的.gitignore文件应包括:

1 2 3
/ node_modules / #不管什么路你传递给Encore.setOutputPath() /公共/构建

应该提交所有源资产文件,package.jsonyarn.lockpackage-lock.json

我的应用住子目录下

如果你的应用并不住在您的web服务器的根(即它生活在子目录下,像/ myAppSubdir),您将需要配置,当调用Encore.setPublicPath ():

1 2 3 4 5 6 7 8 9 10 11 12 13 14
/ / webpack.config.jsEncore // ... .setOutputPath('public/build/').setPublicPath(/构建)+ / / *你*如此公共道路+ .setPublicPath (/ myAppSubdir /构建)+ / /这是现在需要的,这样你的清单。json钥匙仍“构建/ foo.js”+ / /(这是一个文件,使用Symfony的资产()的函数)欧宝娱乐app下载地址+ .setManifestKeyPrefix(“构建”);

如果你使用encore_entry_script_tags ()encore_entry_link_tags ()(或树枝的快捷方式通过entrypoints.json处理你的资产以其它方式)你完成!这些快捷方式的方法从一个读取entrypoints.json文件现在包含子目录。

“jQuery没有定义”或“美元没有定义”

这个错误发生在您的代码(或者一些库,您正在使用)的预期美元jQuery是一个全局变量。但是,当你使用Webpack和要求(“jquery”),没有全局变量设置。

解决取决于如果错误发生在您的代码或在你使用一些第三方代码。看到jQuery插件和遗留应用程序修复。

未捕获ReferenceError: webpackJsonp不是定义

如果你有这种错误,这可能是因为你忘了添加脚本标记runtime.js文件,其中包含Webpack的运行时。如果你使用encore_entry_script_tags ()嫩枝功能,这应该不会发生:文件脚本标记自动呈现。

这种依赖性没有发现:一些模块/路径/ / file.js

通常,当你安装一个包通过纱或npm,你可以使用它需要/导入。例如,在运行纱添加respond.jsnpm安装respond.js,你想要求模块:

1
需要(“respond.js”);

但是,而不是工作,你看到一个错误:

这种依赖性不存在:

  • 回应。js。/资产/ js / app.js

通常,一个包将“广告”的“主要”文件添加一个主要它的关键package.json。但有时,老库不会有这个问题。相反,你需要特别需要你所需要的文件。在这种情况下,您应该使用位于文件node_modules respond.js / / respond.src.js不在座位上。你可以要求通过:

1 2
/ /需要non-minified文件尽可能需要(“respond.js /桌子/ respond.src.js”);

我需要第三方模块上执行巴别塔

针对性能、安可不过程内库node_modules /通过巴别塔。但是,你可以通过改变configureBabel ()方法。看到配置巴别塔获取详细信息。

如何整合我再来一个我的IDE配置吗?

在PhpStorm Webpack集成和其他ide使开发更有效率(例如通过解决别名)。然而,你可能会面对这个错误:

1 2 3 4
Encore.setOutputPath()不能,因为运行时环境似乎不配置。确保你使用安可可执行或叫Encore.configureRuntimeEnvironment()首先如果你故意不直接调用安可。

不能只因为安可运行时环境配置运行时(如在执行纱安可dev)。打电话来解决这个问题Encore.isRuntimeEnvironmentConfigured ()Encore.configureRuntimeEnvironment ()方法:

1 2 3 4 5 6 7 8
/ / webpack.config.js常量安可=需要(“@欧宝娱乐app下载地址symfony / webpack-encore”)如果(! Encore.isRuntimeEnvironmentConfigured ()) {Encore.configureRuntimeEnvironment (process.env。NODE_ENV | |“开发”);}/ /……其余的安可配置
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。