Home > Article > Web Front-end > Detailed explanation of how Vue configures packaging tools
This article mainly introduces the detailed explanation of Vue's fast zero-configuration packaging tool-parcel. Now I share it with you and give it as a reference.
This article introduces Vue's fast zero-configuration packaging tool - parcel, and shares it with everyone. The details are as follows:
Features
How it works
Parcel converts the resource tree into a bundle tree. Many other packaging tools are basically based on JavaScript resources, with resources in other formats attached to them. For example, inline into a string in a JS file. Parcel is file type agnostic, it can work with any type of resource the way you expect, and requires no configuration. Build resource treeParcel accepts a single entry resource as input, which can be of any type: JS, HTML, CSS, image files, etc. There are many different resource types defined in Parcel, which knows how to handle specific file types. Resources will be parsed, resource dependencies will be extracted, and resources will be converted into the final compiled form. This process creates a resource tree. Building the file bundle treeOnce the resource tree is built, the resources will be placed in the file bundle tree. First, an entry resource will be created into a file bundle, and then dynamic import() will be created into a sub-file bundle, which triggers code splitting. When file resources of different types are introduced, sibling file bundles are created. For example, if you introduce a CSS file into JavaScript, it will be placed in a sibling file bundle corresponding to the JavaScript file. If a resource is referenced by more than one bundle, it is promoted to the nearest common ancestor in the bundle tree so that the resource is not bundled multiple times. PackagingAfter the file bundle tree is built, each file bundle will be written by the packager to a file of a specific file type. Packagers know how to combine code from each resource into a file that is ultimately loaded by the browser.Configuration
Initialization projectnpm install -g parcel mkdir xxx && cd xxx && npm init -yConversionBabel
npm install babel-preset-env --save-devRoot directory configuration.babelrc
{ "presets": ["env"] }PostCSS
npm install postcss-modules autoprefixer --save-devRoot directory configuration.postcssrc
{ "modules": true, "plugins": { "autoprefixer": { "grid": true } } }Support vue
npm install parcel-plugin-vue --save-devAdd entry
import App from './App.vue' import router from './router/index.js' import './assets/js/rem.js' window.onload = () => { const vm = new Vue({ el: '#app', router, render: h => h(App) }) }Configuration index.html
<body> <p id="app"></p> <script src="入口文件"></script> </body>Configure routing (code splitting - lazy loading)
{ path: 'home', component: () =>import('../pages/home.vue') }import() returns a promise, so you can also use async/await syntax when you want to use async/await syntax locally. , please introduce babel-polyfill to distinguish the production environment and development environment, configure package.json.dev --- development environmentbuild --- production environment
"scripts": { "dev": "parcel index.html -p 3700", "build": "parcel build index.html" }DoneVisit http://localhost:3700/home This demo is completed by vue parcel grid stylus: parcel-vueThe above is what I compiled for everyone. I hope it will be helpful to everyone in the future. Related articles:
How to get the value in select in vue.js (detailed tutorial)
How to get it in Vue Use slot to implement slot distribution content
How to encapsulate reusable components in vue
How to determine the date and time difference in JavaScript
How to change the props value in the vue2.0 child component and pass the value to the parent component
The above is the detailed content of Detailed explanation of how Vue configures packaging tools. For more information, please follow other related articles on the PHP Chinese website!