web-dev-qa-db-fra.com

webpack & babel-polyfill: impossible de résoudre 'core-js / modules / es6.array.map' dans le répertoire source

Je fais face à cette erreur lorsque j'exécute webpack:

Module not found: Error: Can't resolve 'core-js/modules/es6.array.map' in '/path/to/project/src'
 @ ./src/index.ts 1:0-39

index.ts:

console.log([1, 2, 3].map(x => x * x));

.babelrc:

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "useBuiltIns": "usage"
      }
    ]
  ]
}

webpack.config.js:

const path = require('path');

module.exports = {
  mode: 'development',

  entry: './src/index.ts',
  devtool: false,
  output: {
    filename: 'bundle.js',
    path: path.join(__dirname, 'dist')
  },
  module: {
    rules: [
      {
        test: /\.ts$/,
        use: [
          { loader: 'babel-loader' },
          { loader: 'ts-loader' }
        ]
      }
    ]
  },
  resolve: {
    extensions: [
      '.ts'
    ]
  }
};

Je pense que c'est très bizarre que l'erreur essaie de résoudre le module dans src/, ne pas node_modules/.

J'ai essayé de supprimer node_modules et package.json puis npm i, mais cela n'a pas changé la situation.

J'ai également essayé une autre façon d'utiliser @babel/polyfill décrit ici .

Définition de useBuiltIns sur 'entry' vient d'augmenter le nombre d'erreurs similaires. Le définir sur false a provoqué des erreurs différentes.

Module not found: Error: Can't resolve 'core-js/es6' in '/path/to/project/node_modules/@babel/polyfill/lib'
 @ ./node_modules/@babel/polyfill/lib/index.js 3:0-22
 @ multi @babel/polyfill ./src/index.ts

ERROR in ./node_modules/@babel/polyfill/lib/index.js
Module not found: Error: Can't resolve 'regenerator-runtime/runtime' in '/path/to/project/node_modules/@babel/polyfill/lib'
 @ ./node_modules/@babel/polyfill/lib/index.js 23:0-38
 @ multi @babel/polyfill ./src/index.ts

Il semble core-js et regenerator-runtime doit être installé dans node_modules/@babel/polyfill/. Actuellement, il n'y a que index.js et noConflict.js dans le répertoire. Dois-je installer manuellement ces modules dans ce répertoire?

6
legogo

Essayez d'ajouter ce qui suit dans votre resolves -

  resolve: {
    extensions: [
      '.ts',
      '.js' // add this
    ]
  }
1
legogo