Resumen de lectura del paquete web

El valor del atributo use debe ser una matriz de nombres de Loader. El orden de ejecución de Loader es del último al
frente:
cada Loader puede pasar parámetros a través de la cadena de consulta, por ejemplo,
minimizar en css-loader? habilitar la compresión css, también puede implementarla a través de Object y especificar qué
cargador se usa para procesar archivos en el código fuente . Tomemos como ejemplo la carga del archivo css, modifique main.j en el ejemplo anterior de la siguiente manera:
require ('style-loader! Css-loader? Minimize! ./Main.css');


Dev Server iniciará el servidor HTTP para atender las solicitudes de la página web y, al mismo tiempo, ayudará a iniciar el
paquete web, y recibirá la señal de cambio de archivo enviada por Webpack, y actualizará automáticamente la página web a través del protocolo WebSocket para lograr una
vista previa en tiempo real. .


Cuando se inicia Webpack, utiliza la entrada en la configuración como punto de entrada para analizar recursivamente
los archivos de los que depende el intento. Webpack solo agregará la entrada en sí y los archivos dependientes a la lista de escucha. El archivo indx. Html está separado del sistema modular JavaScript, por lo que Webpack no conoce su existencia


Webpack admite la generación de mapas de origen, solo necesita traer un parámetro devtool source-map al iniciar. Reinicie DevServer, actualice la página y luego abra la herramienta de desarrollo del navegador Chrome, puede ver el código fuente depurable en la columna Fuentes


Después se inicia webpack, se iniciará a partir del módulo configurado en el baño intento , y de forma recursiva analizar todos los módulos que la entrada depende. Cada vez que
un módulo se encuentra, encontrará las reglas de conversión correspondientes de acuerdo con el cargador configurado. Después de la conversión el Módulo,
analizará los módulos dependientes del módulo actual del módulo. En el intento agrupados como una unidad, en el intento y
todos los módulos dependientes se asignan a un grupo que es Chunk. Finalmente, Webpack convierte todos los fragmentos en
archivos para su salida. Durante todo el proceso, Webpack ejecutará la lógica definida por Plugin en el momento adecuado.

 

A continuación, le damos un ejemplo práctico para llevarlo paso a paso para implementar un complemento.

El nombre del complemento es EndWebpackPlugin, que se utiliza para agregar algunas operaciones adicionales cuando Webpack está a punto de salir, por ejemplo, después de que Webpack compila y genera correctamente los archivos, ejecuta la operación de publicación y carga los archivos de salida en el servidor. Al mismo tiempo, el complemento también puede distinguir si la compilación de Webpack se ejecuta correctamente. El método para utilizar el complemento es el siguiente:

 

Es porque la ruta de En y la ruta de los módulos dependientes pueden adoptar la misma
Para la descripción de la ruta co ext , el contexto afectará a los archivos reales apuntados por estas rutas relativas.
· Si la entrada es una matriz de cadenas , solo se generará Chunk , luego el nombre de Chunk
principal
· Si ntr object , puede haber varios Chunk , entonces el nombre de Chunk es
El nombre de la clave en el par clave-valor del objeto.
La orden de ejecución de un grupo de Loa er se ejecuta de derecha a izquierda por defecto, a través de la opción nforce
Ponga la orden de ejecución de uno de los cargadores al principio o al final
 
A la cabeza, cuando la declaración no trajo el sufijo de archivo, Webpack , el sufijo se colocará automáticamente sobre si intentar acceder al archivo existe.
Las extensiones resolv se utilizan para configurar la lista de sufijos utilizados en el proceso de prueba . El valor predeterminado es:
extensiones : [ '. ] S ' ,'. j hijo ' ]
En otras palabras, cuando encuentra una declaración de importación como require ('. Data ') , Webpack primero buscará ./ data
js piezas, si el archivo no existe para ir a buscar el archivo Data .json , si no puede encontrar, en el error
Si queremos webpack a utilizar preferentemente Letra de imprenta archivos en el directorio , se puede configurar de esta manera:
extensiones : [' .ts ', '. j 5 ','.
j his ']
 
devServer.headers elemento de configuración puede HTTP respuesta inyección Algunos HTTP encabezado de respuesta
 
DEVS rv ER usa el servicio HTTP predeterminado puede usar el servicio HTTPS . En algunos casos tengo que usar
HTTPS , como HTTP2 rv ic Worker, debe ejecutarse en HTTPS . A HTTPS
La forma sencilla es:
devServer: {
https : verdadero
}
 
devServer.clientLogLevel configura el nivel de registro del cliente , lo que afectará a nuestro navegador
El contenido de registro clientLogLevel que se ve en la consola de herramientas del remitente es un tipo enumerado, que puede tomar los siguientes valores
ninguna advertencia de error inf . El valor predeterminado es el nivel inf , es decir, generar todos los tipos de registros, establecido en uno
No es necesario generar ningún registro.
 
A través de externos, puede saber qué cambios globales se han creado en el entorno de tiempo de ejecución de Webpack JavaScript
La cantidad no usa las variables globales en el código, sino que las empaqueta directamente usándolas .
 
Para que Babel funcione correctamente , debemos
Este complemento debe instalarse primero:
npm i -D babel-plugin-tra n sform-runtime
-plugin-the Transform-babel Runtime Babel plug-ins proporcionados por el funcionario, como con una reducción
Código redundante B

 

La transcripción ( HTTP : // WWW .type sc riptlang.org ) es Javas Ript un superconjunto de los principales tipos de ofertas
Compruebe el sistema y la compatibilidad con la sintaxis de ES6 , pero no es compatible con la nueva API. Actualmente no hay ningún entorno que admita la ejecución nativa
El código mecanografiado tendrá que convertirlo en un edificio a través de código JavaScript que se pueda ejecutar más tarde.
module.exports = {
  plugins:[
    // 在初始化 EndWebpackPlugin 时传入了两个参数,分别是在成功时的回调函数和失败时的回调函数;
    new EndWebpackPlugin(() => {
      // Webpack 构建成功,并且文件输出了后会执行到这里,在这里可以做发布文件操作
    }, (err) => {
      // Webpack 构建失败,err 是导致错误的原因
      console.error(err);        
    })
  ]
}

Para implementar el complemento, se necesitan dos eventos:

  • done: Ocurre cuando Webpack está a punto de salir después de compilar y generar correctamente el archivo;
  • fallido : ocurre cuando la compilación falla debido a una excepción y Webpack está a punto de salir;

La implementación del complemento es muy simple, el código completo es el siguiente:

class EndWebpackPlugin {

  constructor(doneCallback, failCallback) {
    // 存下在构造函数中传入的回调函数
    this.doneCallback = doneCallback;
    this.failCallback = failCallback;
  }

  apply(compiler) {
    compiler.plugin('done', (stats) => {
        // 在 done 事件中回调 doneCallback
        this.doneCallback(stats);
    });
    compiler.plugin('failed', (err) => {
        // 在 failed 事件中回调 failCallback
        this.failCallback(err);
    });
  }
}
// 导出插件 
module.exports = EndWebpackPlugin;
Web Pack una enorme aplicación de nodo , si se lee el código fuente, entonces lo encontraremos para lograr una completa
Todo el Webpack para escribir mucho código , pero no conocemos todos los detalles, solo para comprender la arquitectura general y
Parcialmente bien
Para los usuarios de Webpack , Webpack es una herramienta simple y poderosa; para los desarrolladores de Webpack ,
Digamos, Webpack es un sistema altamente escalable
La razón por la que Webpack tiene éxito es que oculta la implementación compleja y expone solo una simple
Herramientas , que permiten a los usuarios lograr rápidamente su propósito mientras que su estructura general diseñada y de alta escalabilidad, no es difícil de desarrollar extensiones,
A través de la comunidad componen una gran función, por lo que Webpack casi califica para cualquier escenario.

Supongo que te gusta

Origin blog.csdn.net/taozi550185271/article/details/106191790
Recomendado
Clasificación