Home > Web Front-end > JS Tutorial > Parcel.js+Vue 2.x quick configuration packaging method

Parcel.js+Vue 2.x quick configuration packaging method

php中世界最好的语言
Release: 2018-04-13 16:01:18
Original
1337 people have browsed it

This time I will bring you the method of quick configuration and packaging of Parcel.js Vue 2.x. What are the precautions for quick configuration and packaging of Parcel.js Vue 2.x? The following is a practical case. Get up and take a look.

After Browserify and Webpack, another packaging tool Parcel was born

The official website of Parcel.js has this self-introduction as "Extremely fast zero-configuration web application packaging tool"

After a brief contact, in terms of efficiency, it is indeed much better than webpack, but there are many pitfalls. It should gradually become more popular after future upgrades

Official documentation:

https://parceljs.org/getting_started.html

Official GitHub: https://github.com/parcel-bundler/parcel

1. Basic usage

Parcel can be installed using npm or yarn. Personally, I am used to using npm. This blog will explain it based on npm

First you need to install Parcel.js globally // Current version 1.3.0

npm install -g parcel-bundler
Copy after login
Then write a

configuration file... No, this is not webpack, this is parcel, zero configuration packaging

Directly

create the project directory and write a simple traditional page

Then open the command line tool in the project root directory and enter the following command

parcel index.html -p 3030
Copy after login
Then open http://localhost:3030/ in the browser to open the page you just developed

In the above command, -p is used to set the port number. If not set, port 1234 will be started by default

Parcel supports hot updates and will monitor changes in html, css, and js and render them in real time

//In fact, the css and js introduced through src cannot be hot updated

After development is completed, enter the following command to package

parcel build index.html
Copy after login
After packaging, a dist directory will be generated

Qiaodou sacks, what about the promised packing? Why are there still so many files?

Don’t worry, this is a page written in the traditional way. It doesn’t even have package.json. Next, if it is transformed into a

modular project, you can see the effect of packaging

Okay, let me open index.html manually first to see the effect...wait...why is the css not loaded?

This is because the packaged paths are all absolute paths, so it is no problem to put them on the server. If you need to open them locally, you have to manually change them to relative paths

2. Application in modular projects

At the beginning of the main film, first transform the above project into a modular project

Create a default package.json through the

npm init -y command, and modify the startup and packaging commands

In this way, you can start the project directly through

npm run dev , npm run build execute and package it

Previously, parcel was installed globally. In practice, it is recommended to add dependencies to the project

npm install parcel-bundler -S
Copy after login
The above is a traditional page, using css

introduced by link Since you want to transform it into a modular project, you only need to introduce a main.js, and then introduce other css and js files in main.js

So you need to use ES6 syntax such as import, then install babel

npm install babel-preset-env -S
Copy after login
Then create a .babelrc file in the root directory and add the following configuration:

{
 "presets": ["env"]
}
Copy after login
Install another css conversion tool, such as autoprefixer

npm install postcss-modules autoprefixer -S
Copy after login
Create .postcssrc file:

{
 "modules": true,
 "plugins": {
 "autoprefixer": {
  "grid": true
 }
 }
}
Copy after login
The official document also recommends a plug-in for compiling html resources, PostHTML, but it is not needed here for the time being

Modify the code yourself, and finally

npm run build Packaging

You can see that js and css have been integrated, and their content has been compiled by babel and autoprefixer

3. Using Parcel in Vue projects

The official documentation gives recipes suitable for react projects

但我常用的是 vue,研究了好久,终于找到了方法

依旧使用 index.html 作为入口,以 script 引入 main.js:

<!-- index.html -->
<body>
 <p id="app"></p>
 <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)
})
Copy after login

这里要推荐一个很厉害的插件 parcel-plugin-vue,它让 parcel 和 vue 成功牵手

再加上之前提到的 babel、autoprefixer,最后的 package.json 是这样的:

{
 "name": "ParcelVue",
 "version": "1.0.0",
 "description": "The project of parcel & vue created by 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"
 }
}
Copy after login

一定记得在根目录创建 .postcssrc 和 .babelrc 文件

然后 npm install 安装依赖, npm run dev 启动项目,npm run build 打包项目                                        

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

怎么提速优化vue-cli的代码

HTML+JS实现滚动数字的时钟

The above is the detailed content of Parcel.js+Vue 2.x quick configuration packaging method. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template