我正在用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') } };
知道吗?提前谢谢你。
如果您仍然存在这个问题,我通过使用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'解决了这个问题。