提问者:小点点

Webpack production build失败:“无法解析'aws-sdk'”


我正在用TypeScript编写一个Express应用程序,并尝试使用webpack将生产代码和供应商模块转换到单个bundle.js文件中。但我不能这样做,因为一个奇怪的节点前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个答案

匿名用户

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

前面:webpack./webpack.config.js--模式生产//错误:无法解析...

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

我承认,我不确定为什么这样做会解决问题,因为在我的例子中,它是以任何方式读取配置文件的。我使用的是WebPackV4.16.2和WebPack-CLIV3.1.0。

匿名用户

我添加了包,错误已经消失,但是它增加了4.5MB(!)到我的包裹里。

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