如何解决Encore Global 不适用于旧版应用程序
大约 2 个小时,我现在尝试在 app.js 中使用带有全局变量的 encore 之外的 jquery 等库,如下所示:
const $ = require('jquery');
global.$ = global.jQuery = $;
此处解释了此方法:jQuery Plugins and Legacy Applications (Symfony Docs)
但不幸的是,我无法在模板内的脚本标记中访问 $
或 jQuery
。
我的 webpack-configuration 不包含 autoProvidejQuery()
或其他人已经建议注释掉的其他方法,以使 jQuery 可以在外部访问。
我的 webpack 配置:
Encore
.setOutputPath('public/build/')
.setPublicPath('/build')
.addEntry('app','./assets/app.js')
.splitEntryChunks()
.enableSingleRuntimeChunk()
.cleanupOutputBeforeBuild()
.enableBuildNotifications()
.enableSourceMaps(!Encore.isProduction())
.enableVersioning(Encore.isProduction())
.configureBabel((config) => {
config.plugins.push('@babel/plugin-proposal-class-properties');
})
.configureBabelPresetEnv((config) => {
config.useBuiltIns = 'usage';
config.corejs = 3;
})
.enableSassLoader();
我在正文末尾使用jQuery的方式(示例):
<script>
$('#nav').html('Hello World');
</script>
产生的异常:
未捕获的引用错误:$ 未定义
总而言之,我在 stackoverflow 和其他平台上寻找解决方案已经有一段时间了,但没有解决方案适合我,所以您可能有我的问题的解决方案......
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。