webpack打包文件不能引用_webpack 混淆压缩文件后不能引用 并报错 Object(...) is not a function汗血宝马. ...

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-31 04:43   11   0

需求

封装一个自己写的js,想要混淆压缩后能够在别的项目直接调用

尝试过程

使用uglify-es6直接压缩混淆

my.js

,引入文件调用成功,无报错

但是考虑到使用场景,还是需要先转成es5,于是先转成了es5,再使用uglifyjs压缩,这个时候引用报错exports is not defined。查阅资料以后得知是bable在将es6转为es5的时候会转成CommonJS,而浏览器不能直接使用,通常还是需要用webpack等基于node的工具去打包。

ok,尝试用webpack打包,下附

webpack.config.js

,打包成功但是,在引用的时候报错了

Object(...) is not a function

const path = require('path');

const HtmlWebpackPlugin = require('html-webpack-plugin');

const UglifyJsPlugin = require('uglifyjs-webpack-plugin');

const webpack = require("webpack");

module.exports = {

mode: 'production',

optimization: {

minimizer: [

new UglifyJsPlugin({

// cache: true,

parallel: true,

uglifyOptions: {

compress: true,

mangle: true,

output: {

comments: false

}

},

sourceMap: true

})

]

},

entry: {

app: './src/index.js',

print: './src/print.js',

raphael: './src/raphael.js'

},

plugins: [

],

output: {

filename: '[name].min.js',

path: path.resolve(__dirname, 'dist')

},

module: {

rules: [

{

test: /\.js$/,

exclude: /(node_modules|bower_components)/,

use: {

loader: 'babel-loader',

options: {

presets: ['env']

}

}

},

]

}

};

问题

自己检查了一下,压缩后的文件里没有export的字样,是我在配置

UglifyJsPlugin

的时候还需要配置忽略哪些关键字么?我查了

uglifyjs-webpack-plugin

的文档似乎没有实际的例子,求问大神们该如何解决。。。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP