English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Después de Browserify y Webpack, ha aparecido otro herramienta de empaquetado: Parcel
La página web oficial de Parcel.js tiene una presentación autodescriptiva: 'Herramienta de paquete de aplicaciones web sin configuración rápida'
He tocado un poco, y en términos de eficiencia, realmente es mucho mejor que webpack, pero también hay muchos problemas, debería volverse más común después de las actualizaciones futuras
Documentación oficial:https://parceljs.org/getting_started.html
GitHub oficial:https://github.com/parcel-empaquetador/parcel
1. Uso básico
Parcel se puede instalar con npm o yarn, me gusta usar npm, este blog se basará en npm
Primero, es necesario instalar globalmente Parcel.js // Versión actual 1.3.0
instala npm -g parcel-empaquetador
Luego escribe un archivo de configuración... no, esto no es webpack, esto es parcel, empaquetado sin configuración
Crea directamente el directorio del proyecto, escribe una página tradicional simple
Luego abre la herramienta de línea de comandos en la carpeta raíz del proyecto e ingrese el siguiente comando
parcel index.html -p 3030
Luego abrelo en el navegador http://localhost:3030/ puede abrir la página desarrollada recientemente
En el comando anterior -p se usa para configurar el número de puerto, si no se configura, se iniciará por defecto 1234 puerto
Parcel admite actualizaciones en caliente, monitoreará los cambios en html, css y js y los renderizará de manera instantánea
// En realidad, los css y js que se importan a través de src no pueden actualizarse en caliente
Después de completar el desarrollo, ingrese el siguiente comando para empaquetar
parcel build index.html
Después del empaquetado se generará un directorio dist
¡Oh, no! ¿Dónde está el empaquetado que dijiste? ¿Por qué hay tantos archivos?
No te preocupes, esta página está escrita con un estilo tradicional, sin package.json, y luego al transformarla en un proyecto modular, podrías ver los efectos del empaquetado
Bueno, primero abra manualmente index.html para ver el efecto... ¿por qué no se carga el css?
Esto se debe a que las rutas empaquetadas son rutas absolutas, que no presentan problemas cuando se colocan en el servidor, pero si se necesita abrir localmente, deben modificarse manualmente a rutas relativas
Aplicación en proyectos modulares
Comienza la acción, primero transforma el proyecto anterior en un proyecto modular
a través de npm init -Crear un package.json predeterminado con el comando y y modificar los comandos de inicio y empaquetado
De esta manera, puedes iniciar el proyecto directamente con npm run dev y ejecutar el empaquetado con npm run build
Anteriormente se instalaba globalmente parcel, pero en la práctica se recomienda agregar la dependencia al proyecto
instala npm parcel-empaquetador -S
Arriba hay una página tradicional, que usa link para importar css
Dado que se necesita transformar en un proyecto modular, solo se necesita importar un main.js, y luego en main.js importar otros archivos css y js
Por lo tanto, se necesita usar import y otros ES6 Si necesitas instalar un babel, instala uno
instala npm babel-preset-env -S
Luego crea un archivo .babelrc en la carpeta raíz y agrega la siguiente configuración:
{ "presets": ["env"] }
Instala una herramienta de conversión css, como autoprefixer
instala npm postcss-módulos autoprefixer -S
Cree el archivo .postcssrc:
{ "modules": true, "plugins": { "autoprefixer": { "grid": true } } }
La documentación oficial también recomienda un plugin de compilación de recursos html: PostHTML, pero aquí no es necesario por el momento
Modifique el código por su cuenta, luego ejecute npm run build para empacar
Se puede ver que js y css se han integrado, y su contenido también ha sido compilado por babel y autoprefixer
Tercero, el uso de Parcel en proyectos de Vue
La documentación oficial proporciona una receta para proyectos de react
Pero a menudo uso vue, he investigado mucho y finalmente encontré la solución
Siguiendo el uso de index.html como punto de entrada, se introduce main.js mediante script:
<!-- index.html --> <body> <div id="app"></div> <script src="./src/main.js"></script> </body> // main.js import 'babel-polyfill' import Vue from 'vue' import App from './App.vue' import router from './router' import './css/common.css' Vue.config.productionTip = false const vm = new Vue({ el: '#app', router, render: h => h(App) }
Aquí quiero recomendar un plugin muy impresionante: parcel-plugin-vue, que permite que parcel y vue se unan con éxito
Además de lo mencionado anteriormente babel, autoprefixer, el último package.json es así:
{ "name": "ParcelVue" "version": "1.0.0", "description": "El proyecto de parcel & vue creado por Wise Wrong" "main": "main.js", "scripts": { "dev": "parcel index.html" -p 3030", "build": "parcel build index.html" }, "keywords": [] "parcel" "vue" ], "author": "wisewrong", "license": "ISC", "devDependencies": { "autoprefixer": "^7.2.3", "babel-polyfill": "^6.26.0", "babel-preset-env": "^1.6.1", "parcel-bundler": "^1.3.0", "parcel-plugin-vue": "^1.4.0", "postcss-modules": "^1.1.0", "vue-loader": "^13.6.1", "vue-style-loader": "^3.0.3", "vue-template-compiler": "^2.5.13" }, "dependencies": { "vue": "^2.5.13", "vue-router": "^3.0.1" } }
Recuerden crear los archivos .postcssrc y .babelrc en la carpeta raíz
Luego, instale las dependencias con npm install, inicie el proyecto con npm run dev y打包项目 con npm run build
Resumen
Lo que se ha mencionado anteriormente es el tutorial de Parcel.js que les he presentado + Vue 2Tutorial de experiencia de paquete极速零配置,esperamos que les sea útil, si les ha sido útil.
Declaración: Este artículo se ha obtenido de la red, pertenece al propietario original, el contenido se ha contribuido y subido por los usuarios de Internet, este sitio web no posee los derechos de propiedad, no ha sido editado por humanos y no asume ninguna responsabilidad legal relacionada. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#w3Declaración: El contenido de este artículo se ha obtenido de la red, pertenece al propietario original, el contenido se ha contribuido y subido por los usuarios de Internet, este sitio web no posee los derechos de propiedad, no ha sido editado por humanos y no asume ninguna responsabilidad legal relacionada. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#w