javascript - 使用带有 inject = true 的 HtmlWebpackPlugin 不会缩小 ES6 代码

标签 javascript html webpack minify

我正在尝试从模板文件创建一个 html 文件,将一些 JavaScript 内联注入(inject)到 html 文件中。

这很好用,除了当我在我的 js 文件异步中使用一些 ES6 语法时,特别是在我的示例中。然后它将所有代码保留在该特定代码块中。

我想知道是否有一种方法可以在我的代码被缩小之前转译它?

如有任何帮助,我们将不胜感激。

我的 webpack.config.js 文件如下所示

var path = require('path');
var fs = require("fs");
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const webpack = require('webpack');
const Uglify = require("uglifyjs-webpack-plugin");

module.exports = {
    context: __dirname,
    entry: './TestFile/index.js',
    output: {
        path: path.resolve(__dirname, 'TestFile')
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                use: 'babel-loader',
                exclude: /node_modules/,
            },
        ],
    },
    plugins: [
        new HtmlWebpackPlugin({
            filename: 'TestFile.html',
            template: './TestFile/TestFileTemplate.html',
            inject: true,
            jquery: fs.readFileSync('./TestFile/js/jquery.js', 'utf8'),
            gds: fs.readFileSync('./TestFile/js/extras.js', 'utf8'),
            style: fs.readFileSync('./TestFile/css/style.css', 'utf8'),
            minify: {
                html5: true,
                collapseWhitespace: true,
                minifyCSS: true,
                minifyJS: true,
                removeScriptTypeAttributes: true,
                removeStyleLinkTypeAttributese: true,
                useShortDoctype: true
            }
        })
    ]
};

最佳答案

我假设您想在这里缩小文件:

gds: fs.readFileSync('./TestFile/js/extras.js', 'utf8'),

您可以使用 babel 来转译文件内容:

gds: require("@babel/core").transformSync(fs.readFileSync('./TestFile/js/extras.js', 'utf8'), {
  "presets": ["@babel/preset-env"]
}).code;

还有html-webpack-inline-source-plugin。这可能是一种更简洁的内联文件方式。

关于javascript - 使用带有 inject = true 的 HtmlWebpackPlugin 不会缩小 ES6 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53069744/

相关文章:

javascript - 按反值引用列出的元素

javascript - 如何在更新卡片的弹出窗口中获取 2 个 div 值。

webpack - 在 .Net Core 3.0 中使用水疗服务?

webpack - 从变量动态加载 Vue 组件

javascript - 防止 Javascript 中 SI 前缀的正则表达式回溯

javascript - 使用委托(delegate)单击按钮下载文件 JQuery

jquery 屏蔽输入

javascript - 使所有列表项与最高项的高度相同

node.js - 如何将nextjs部署到非根目录的目录中

javascript - 获取图像在 html5 Canvas 上的位置