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
  • Заранее прошу прощение за такое количество текста и конфигов

Ответы (0 шт):