使用HtmlWebpackPlugin并设置inject=true无法压缩ES6代码

3
我正在尝试从模板文件创建一个html文件,并将一些JavaScript内联注入到html文件中。这个方法非常好用,但是当我的js文件中使用了ES6语法,特别是async时,会导致该代码块中的所有代码未被压缩。我想知道是否有一种方法在代码被压缩之前进行转码?任何帮助都将不胜感激。我的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
            }
        })
    ]
};

根据您要转译的功能,使用preset-env和其他插件。 - PlayMa256
你有这方面的例子吗?不太清楚你所说的“和其他插件”是什么意思。谢谢。 - user3284707
https://babeljs.io/ 根据你的需求而定。这就是你必须使用的。 - PlayMa256
1个回答

1

我猜您想在这里压缩文件:

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。它可能是内联文件的更清晰的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接