我正在使用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') } };
有什么想法吗?提前谢谢。
答案 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”即可解决问题。