javascript - HtmlWebpackPlugin - 在正文中的特定位置注入(inject) js

标签 javascript webpack webpack-4 html-webpack-plugin asset-management

我正在使用 HtmlWebpackPlugin 将 javascript 注入(inject)到我的模板文件中:

<html>
    ...
    <body>
        ...
        <?php echo $this->inlineScript(); ?>
        <script type="text/javascript" src="/dist/vendor.js?a4212b4b10c2d4d2d73e"></script>
    </body>
</html>

但是,我需要在 PHP 代码 <?php echo $this->inlineScript(); ?> 之前注入(inject)生成的包。 ,让内联脚本正常工作(它们需要JQuery,它将在vendor.js中加载)。

结果应该是:

<html>
    ...
    <body>
        ...
        <script type="text/javascript" src="/dist/vendor.js?a4212b4b10c2d4d2d73e"></script>
        <?php echo $this->inlineScript(); ?>
    </body>
</html>

有办法实现这一点吗?也许可以使用像 <%= htmlWebpackPlugin.options.??? %> 这样的占位符或者类似的东西?如果它不能与 HtmlWebpackPlugin 一起使用,我可以使用其他 webpack 插件吗?

最佳答案

好吧,我明白了。将以下代码放在要包含 js 文件的位置:

<% for(var i=0; i < htmlWebpackPlugin.files.js.length; i++) {%>
    <script type="text/javascript" src="<%= htmlWebpackPlugin.files.js[i] %>"></script>
<% } %>

并将 HtmlWebpackPlugin 选项中的inject 设置为 false。

请记住,您还需要手动注入(inject)其他内容(css、元标记等)。 F.e. CSS:

<% for(var i=0; i < htmlWebpackPlugin.files.css.length; i++) {%>
    <link type="text/css" rel="stylesheet" href="<%= htmlWebpackPlugin.files.css[i] %>">
<% } %>

关于javascript - HtmlWebpackPlugin - 在正文中的特定位置注入(inject) js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55104916/

相关文章:

javascript - Babel Plugin/Preset 文件不允许导出对象,只能导出函数

javascript - Webpack 动态创建模块

reactjs - webpack 4 React loadable 不会根据卡盘点分割供应商

javascript - 如何将javascript文件输出到 'static/js'目录并将css文件输出到 'static/css'目录

javascript - 无限输入 JavaScript

css - 如何在 React 应用程序中加载 css?

javascript - 是否可以以某种方式直接更改派生商店的值?

webpack - 如何在 webpack 中使用多个配置文件?

javascript - JQuery 和 Underscore "each"保证数组的顺序?

javascript - 解析 JSON 时出现此语法错误的原因是什么?