Webpack生产版本失败了:"无法解决问题' aws-sdk'"

时间:2018-06-03 19:25:38

标签: node.js typescript webpack

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

Module not found: Error: Can't resolve 'aws-sdk' in '[...]/harema-api/node_modules/bcrypt/node_modules/node-pre-gyp/lib'

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

const path = require('path');

module.exports = {
    entry: './src/index.ts',
    target: 'node',
    mode: 'production',
    devtool: 'inline-source-map',
    module: {
        rules: [
            {
                test: /\.tsx?$/,
                use: 'ts-loader'
            }
        ]
    },
    resolve: {
        extensions: [ '.tsx', '.ts', '.js' ]
    },
    output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist')
    }
};

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

2 个答案:

答案 0 :(得分:2)

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

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

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

我承认我不确定为什么这可以解决问题,因为就我而言,它是通过两种方式读取配置文件。我正在使用webpack v4.16.2和webpack-cli v3.1.0。

答案 1 :(得分:0)

我添加了该程序包,但错误消失了,但是它为我的程序包增加了4.5MB(!)。

删除整个“ node_modules”文件夹和“ npm install”即可解决问题。