我有一个将成为AWS Lambda的NodeJS应用程序.
该应用程序的主JS文件是app.js.
我还有一个./lib/index.js,它是主库,包含所有其他参考库代码.
我的 idea 是将webpack设置为使用./lib/index.js作为条目,并创建一个新的./lib/index.js,它是所有引用的依赖项/文件的组合.
我在这个问题上运行了webpack,处理了一些小问题;我有新的./lib/index.js.
问题是主Lambda代码具有以下内容:
const lib = require('./lib/index');
...
lib.runRoutines(date);
Webpack似乎将lib.runRoutines重命名为某个新名称,我不知道它是什么,在代码中也不容易找到.
有没有办法阻止webpack重命名导出的函数,至少对于顶层库是这样?
-更新添加webpack配置 我try 过TerserPlugin,但我不是不正确地使用它,就是其他地方有问题,因为在创建的JavaScript文件中仍然没有"runRoutine"函数.
以下是我目前的webpack.config.js:
const path = require('path');
const NodePolyfillPlugin = require("node-polyfill-webpack-plugin");
const TerserPlugin = require('terser-webpack-plugin')
const webpack = require('webpack');
module.exports = {
entry: './src/lib/index.js',
module: {
rules: [
{
test: /\.ts?$/,
use: 'ts-loader',
exclude: /node_modules/,
}
]
},
resolve: {
extensions: ['.tsx', '.ts', '.js'],
fallback: {
"fs": false,
"tls": false,
"net": false,
"dns": false,
"child_process": false,
"dtrace-provider": false
}
},
optimization: {
minimize: true,
minimizer: [
new TerserPlugin({
terserOptions: {
keep_classnames: true,
keep_fnames: true
}
})
]
},
output: {
filename: 'index.js',
path: path.resolve(__dirname, 'build', 'lib'),
},
plugins: [
new NodePolyfillPlugin(),
new webpack.IgnorePlugin({resourceRegExp: /.sql$/ })
]
};