使用Webpack将NPM节点模块编译为一个文件时遇到麻烦。 在安装NPM模块ynoseose之后,并在我的TS文件中说:
import Dynamoose from 'dynamoose';
Dynamoose.AWS.config.update({
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
region: process.env.AWS_REGION
});
// more code
运行webpack编译我的项目后,bundle js文件如下所示:
更多代码 更多代码
执行js文件时出现错误
"errorType": "Runtime.ImportModuleError",
"errorMessage": "Error: Cannot find module 'dynamoose'",
我希望在Webpack之后将dynamoose源代码连接到我的bundle js文件中,但是现在它只有module.exports = require("dynamoose");
,并且不包含实际的dynamoose。
webpack文件如下所示
module.exports = {
entry: entries(),
mode: NODE_ENV,
target: 'node',
optimization: {
minimize: false
},
output: {
path: path.resolve(__dirname, "dist"),
filename: "[name].js",
libraryTarget: "commonjs2"
},
resolve: {
extensions: ['.ts', '.js'],
},
module: {
rules: [
{
test: /\.ts$/,
exclude: /node_modules/,
use: [
'ts-loader',
]
}
]
},
externals: [ nodeExternals() ],
plugins: [new FileZipPlugin()],
}