Cómo funciona "incluir" y "excluir" en el cargador de paquetes web

Actualización y respuesta:

Mi malentendido fue:

Todos los archivos importados / requeridos serán transformados por el cargador.

Sin embargo, algunos archivos importados / requeridos no son necesarios para ser transformados. Por ejemplo, se han procesado archivos js en "node_module". Por lo tanto, no hay necesidad de ser transformado nuevamente por el cargador Babel. Eso es básicamente por qué necesitamos "excluir: / node_modules /" en el cargador.

Del mismo modo, si sabe qué archivos debe transformar un cargador, puede usar "incluir".

En pocas palabras, entry.js incluirá todos los archivos importados / requeridos. Pero entre estos archivos, solo algunos de ellos necesitan ser transformados. Es por eso que "cargador" introduce "incluir" y "excluir".

Todavía no tengo muy claras las razones por las que necesitamos usar "incluir" o "excluir" en el cargador de paquetes web.

Debido a que el archivo js de entrada siempre tendrá que incluir sus archivos js importados / requeridos de forma recursiva. Todos los archivos importados / requeridos serán transformados por el cargador. Si ese es el caso, ¿por qué necesitamos "incluir" o "excluir" en el cargador?

Un caso común es "excluir: / node_modules /". Lo que me confunde es que si el archivo js de entrada necesita algunos archivos de node_modules y luego excluimos los node_modules. Entonces, el archivo de paquete final no contendrá el archivo requerido de node_modules. En ese caso, el paquete final.js no funcionará correctamente. ¿Me estoy perdiendo algo aquí?

module.exports = {
  entry: [
    './index.js'
  ],
  output: {
    path: path.join(__dirname,"public"),
    filename: 'bundle.js'
  },
  module: {
    loaders: [{
      test: /\.js$/,
      loader: 'babel',
      exclude: /node_modules/,
      query: {
          presets: ['es2015']
        }
    }]
  }
}; 

Gracias

Derek

Respuestas a la pregunta(2)

Su respuesta a la pregunta