Webpack x Babel не может найти модуль внутри node_modules. Как исправить?
При выполнении webpack --mode production выдаёт список warning'ов, в которых сказано, что не может resolve какой то модуль внутри определённого пакета из node_modules.
Вот список warning'ов.
WARNING in ./node_modules/fast-json-stringify/index.js 15:11-33
Module not found: Error: Can't resolve 'long' in 'E:\Development\NodeJS-apps\clevertec-shop-backend\node_modules\fast-json-stringify'
@ ./node_modules/fastify/lib/reply.js 6:12-42
@ ./node_modules/fastify/fastify.js 32:14-36
@ ./src/index.ts 3:0-30 6:14-21
WARNING in ./node_modules/mongodb/lib/bson.js 8:11-30
Module not found: Error: Can't resolve 'bson-ext' in 'E:\Development\NodeJS-apps\clevertec-shop-backend\node_modules\mongodb\lib'
@ ./node_modules/mongodb/lib/index.js 31:13-30
@ ./node_modules/mongoose/lib/index.js 1104:27-45
@ ./node_modules/mongoose/index.js 9:0-34
@ ./src/server/index.ts 13:0-32 67:33-49
@ ./src/index.ts 4:0-34 16:17-23
WARNING in ./node_modules/mongodb/lib/deps.js 25:4-42
Module not found: Error: Can't resolve 'kerberos' in 'E:\Development\NodeJS-apps\clevertec-shop-backend\node_modules\mongodb\lib'
@ ./node_modules/mongodb/lib/index.js 91:13-30
@ ./node_modules/mongoose/lib/index.js 1104:27-45
@ ./node_modules/mongoose/index.js 9:0-34
@ ./src/server/index.ts 13:0-32 67:33-49
@ ./src/index.ts 4:0-34 16:17-23
WARNING in ./node_modules/mongodb/lib/deps.js 31:4-38
Module not found: Error: Can't resolve 'snappy' in 'E:\Development\NodeJS-apps\clevertec-shop-backend\node_modules\mongodb\lib'
@ ./node_modules/mongodb/lib/index.js 91:13-30
@ ./node_modules/mongoose/lib/index.js 1104:27-45
@ ./node_modules/mongoose/index.js 9:0-34
@ ./src/server/index.ts 13:0-32 67:33-49
@ ./src/index.ts 4:0-34 16:17-23
WARNING in ./node_modules/mongodb/lib/deps.js 33:79-109
Module not found: Error: Can't resolve 'snappy/package.json' in 'E:\Development\NodeJS-apps\clevertec-shop-backend\node_modules\mongodb\lib'
@ ./node_modules/mongodb/lib/index.js 91:13-30
@ ./node_modules/mongoose/lib/index.js 1104:27-45
@ ./node_modules/mongoose/index.js 9:0-34
@ ./src/server/index.ts 13:0-32 67:33-49
@ ./src/index.ts 4:0-34 16:17-23
WARNING in ./node_modules/mongodb/lib/deps.js 48:4-34
Module not found: Error: Can't resolve 'aws4' in 'E:\Development\NodeJS-apps\clevertec-shop-backend\node_modules\mongodb\lib'
@ ./node_modules/mongodb/lib/index.js 91:13-30
@ ./node_modules/mongoose/lib/index.js 1104:27-45
@ ./node_modules/mongoose/index.js 9:0-34
@ ./src/server/index.ts 13:0-32 67:33-49
@ ./src/index.ts 4:0-34 16:17-23
WARNING in ./node_modules/mongodb/lib/encrypter.js 83:38-74
Module not found: Error: Can't resolve 'mongodb-client-encryption' in 'E:\Development\NodeJS-apps\clevertec-shop-backend\node_modules\mongodb\lib'
@ ./node_modules/mongodb/lib/connection_string.js 18:20-42
@ ./node_modules/mongodb/lib/mongo_client.js 11:28-58
@ ./node_modules/mongodb/lib/index.js 19:23-48 109:21-46
@ ./node_modules/mongoose/lib/index.js 1104:27-45
@ ./node_modules/mongoose/index.js 9:0-34
@ ./src/server/index.ts 13:0-32 67:33-49
@ ./src/index.ts 4:0-34 16:17-23
WARNING in ./node_modules/pino/lib/tools.js 183:26-62
Module not found: Error: Can't resolve 'pino-pretty' in 'E:\Development\NodeJS-apps\clevertec-shop-backend\node_modules\pino\lib'
@ ./node_modules/pino/pino.js 18:4-26
@ ./node_modules/fastify/lib/logger.js 10:13-28
@ ./node_modules/fastify/fastify.js 39:25-48
@ ./src/index.ts 3:0-30 6:14-21
Пробовал сначала удалять node_modules и заново устанавливать. - не помогло.
Вот сами конфиги.
package.json:
{
"name": "test",
"version": "1.0.0",
"description": "test",
"main": "index.js",
"author": "atttuuuhoorrr",
"license": "MIT",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "nodemon",
"start": "ts-node ./src/index.ts",
"build": "webpack --mode production"
},
"dependencies": {
"dotenv": "^10.0.0",
"fastify": "^3.25.0",
"fastify-cors": "^6.0.2",
"fastify-multipart": "^5.2.1",
"fastify-static": "^4.5.0",
"mongoose": "^6.1.2",
"regenerator-runtime": "^0.13.9"
},
"devDependencies": {
"@babel/cli": "^7.16.0",
"@babel/core": "^7.16.5",
"@babel/plugin-proposal-class-properties": "^7.16.5",
"@babel/plugin-proposal-object-rest-spread": "^7.16.5",
"@babel/polyfill": "^7.12.1",
"@babel/preset-env": "^7.16.5",
"@babel/preset-typescript": "^7.16.5",
"babel-loader": "^8.2.3",
"nodemon": "^2.0.15",
"path-browserify": "^1.0.1",
"prettier": "^2.5.0",
"ts-loader": "^9.2.6",
"ts-node": "^10.4.0",
"typescript": "^4.5.2",
"webpack": "^5.65.0",
"webpack-cli": "^4.9.1"
}
}
tsconfig.json:
{
"compilerOptions": {
"baseUrl": "src",
"outDir": "./dist",
"target": "es5",
"allowJs": true,
"module": "CommonJS",
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"sourceMap": true,
"noImplicitAny": false,
"noEmit": false
},
"include": [
"src/**/*.ts"
],
"exclude": [
"node_modules",
".vscode"
]
}
webpack.config.js:
const path = require('path');
module.exports = {
entry: {
main: ['@babel/polyfill', './src/index.ts'],
},
target: 'node',
module: {
rules: [
{
test: /\.ts$/,
exclude: /node_modules/,
loader: 'babel-loader',
},
],
},
resolve: {
extensions: ['*', '.js', '.ts'],
},
output: {
filename: 'index.js',
path: path.resolve(__dirname, 'dist'),
},
};
.babelrc:
{
"presets": ["@babel/preset-env", "@babel/preset-typescript"],
"plugins": ["@babel/proposal-class-properties", "@babel/proposal-object-rest-spread"]
}
P.S.
- Для установки пакетов использую
yarn - Заранее прошу прощение за такое количество текста и конфигов