javascript - 如何在 Wordpress 主题中包含使用 Webpack 的外部库
问题描述
我决定使用 Webpack 和 Babel 来开发我的 Wordpress 主题,因为我想支持 ES6 功能并且仍然让我的网站在旧版浏览器 (IE11) 上运行,以及其他好处,例如能够导入文件以便我不必将我所有的 JS 都放在一个大的 script.js 文件中(例如,对于使用 WebGL 的主题)。
这是我第一次设置和使用 Webpack,我很确定我已经以正确的方式进行了设置,因为我遵循了一些教程来做到这一点,而且一切都很好,但我的主要问题是使用外部库。我有几个需要通过 NPM 安装的(即 Chart.js、Flickity、Magnific Popup 等)。我有一个主script.js
文件,其中包含我的正常 Javascript 代码,并捆绑到bundle.min.js
其中是与 Wordpress 一起排队的文件。
script.js
通过 webpack将外部库与我的文件一起使用的最佳方法是什么?
目前,我想出的最佳解决方案是script.js
按以下方式设置文件:
// Imports
import 'magnific-popup/dist/jquery.magnific-popup.min.js';
import 'flickity/dist/flickity.pkgd.min.js';
import 'chart.js/dist/Chart.bundle.min.js';
script.js code...
当我运行npm run build
它时,一切正常,babel 和 uglify js 发挥它们的魔力来缩小代码并使代码在旧浏览器上运行,但出于某种原因,我觉得有更好的方法可以做到这一点,因为我在网上找不到任何关于它。
这是最好的方法吗?
解决方案
基本上,我们不需要在 webpack 中使用 babel-loader 来缩小/转译外部库(因为它们内部已经支持所有浏览器)。对于这些文件,您可以使用 script-loader 而不是 babel-loader。
另一种导入方法是使用 npm 添加这些库并在需要的地方导入它们。通过这种方法,webpack 将这些库包含在需要的地方,而不是每次都加载它,这是不必要的。
推荐阅读
- html - 带有可调节多列的角度下拉菜单
- java - 找不到符号 Menu 和 MenuItem
- r - 如何使用原始数据框中的列名和行名将矩阵转换为数据框
- javascript - 对象索引未达到预期的数组
- android - android 发布版本上的 react-native-firebase NullPointerException
- json - 如何将 sqlite 数据库中的数据传递给模板?(使用highcharts制作折线图)
- python - 如何在 python 中绘制两个选定列与时间的分组条形图。我将在下面发布我的数据
- python - 无法使用 Python 将成功登录会话 cookie 传递到类方法中
- java - com4j 在 Eclipse 中工作,但在 jar 中不工作
- sql - 查找库存差异的开始和结束日期