Webpack 生产构建失败:“无法解析 'aws-sdk'”

Posted

技术标签:

【中文标题】Webpack 生产构建失败:“无法解析 \'aws-sdk\'”【英文标题】:Webpack production build fails : "Can't resolve 'aws-sdk'"Webpack 生产构建失败:“无法解析 'aws-sdk'” 【发布时间】:2018-11-13 04:12:01 【问题描述】:

我正在使用 TypeScript 编写一个 Express 应用程序,并尝试使用 webpack 将生产代码和供应商模块转换为单个 bundle.js 文件。但我不能这样做,因为一个奇怪的 node-pre-gyp 错误:

找不到模块:错误:无法解析“[...]/harema-api/node_modules/bcrypt/node_modules/node-pre-gyp/lib”中的“aws-sdk”

我正在运行节点 8.11.2。这是我的webpack.config.js

常量路径 = 要求('路径'); 模块.exports = 条目:'./src/index.ts', 目标:'节点', 模式:'生产', devtool: '内联源地图', 模块: 规则:[ 测试:/\.tsx?$/, 使用:'ts-loader' ] , 解决: 扩展名:['.tsx','.ts','.js'] , 输出: 文件名:'bundle.js', 路径:path.resolve(__dirname, 'dist') ;

有什么想法吗?提前谢谢你。

【问题讨论】:

在我的情况下,通过切换到 bcryptjs 包而不是 bcrypt 解决了问题。有点慢,但它的工作原理。 【参考方案1】:

我添加了包并且错误消失了,但是它给我的包增加了 4.5MB (!)。

删除整个 'node_modules' 文件夹和 'npm install' 解决了问题。

【讨论】:

【参考方案2】:

如果您仍然遇到此问题,我通过使用 webpack 命令明确指定 --config 来解决此问题,而不是仅使用配置作为第一个参数或省略它。

之前:webpack ./webpack.config.js --mode production // 错误:无法解决 ...

之后:webpack --config ./webpack.config.js --mode production

我承认我不确定为什么这解决了这个问题,因为在我的情况下它正在读取配置文件。我正在使用 webpack v4.16.2 和 webpack-cli v3.1.0。

【讨论】:

我切换到它并且错误消失了。认为这是一个胜利,但查看了构建的文件,这是转译的 webpack.config.js。所以不是解决方案。

以上是关于Webpack 生产构建失败:“无法解析 'aws-sdk'”的主要内容,如果未能解决你的问题,请参考以下文章

NestJS Graphql webpack 生产构建错误

AWS Amplify and React - 找不到模块:无法解析“@aws-amplify/analytics”

webpack:生产构建后缺少自定义样式

用于代码拆分的 Webpack 配置不适用于生产构建

webpack2 生产构建真的很慢“附加资产处理”

webpack----7生产环境构建 配置文件