Webpack 搭建 Vue.js 项目并进行不同PC端屏幕适配配置中文标题

Posted 魏晓蕾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Webpack 搭建 Vue.js 项目并进行不同PC端屏幕适配配置中文标题相关的知识,希望对你有一定的参考价值。

1、Webpack 搭建 Vue.js 项目

  • 安装 node 环境
    node.js 官网下载地址:https://nodejs.org/zh-cn/
  • 安装 Vue
npm install vue
  • 安装 vue-cli
npm install --global vue-cli
  • 安装 vue/cli-init
npm install --global @vue/cli-init

不安装 vue/cli-init 执行 vue init webpack webpack-vue-demo 创建 webpack 项目,报错如下:
Command vue init requires a global addon to be installed.
Please run yarn global add @vue/cli-init

  • 安装 webpack
npm install --global webpack
  • 安装 webpack-dev-server
npm install --global webpack-dev-server
  • Webpack 搭建 Vue.js 项目
vue init webpack webpack-vue-demo
  • 运行 vue 项目
cd webpack-vue-demo
npm run dev
  • 浏览器访问:http://localhost:8080,即可打开搭建的 Vue.js 项目。
  • 项目目录结构如下:

在这里插入图片描述

2、不同 PC 端屏幕适配

  • 安装 lib-flexible
npm install lib-flexible --save
  • 安装 px2rem-loader
npm install px2rem-loader --save
  • 在项目入口文件 main.js 中引入 lib-flexible
import 'lib-flexible'
  • 在 build/utils.js 中添加如下代码:
exports.cssLoaders = function (options) {
  options = options || {}

  const cssLoader = {
    loader: 'css-loader',
    options: {
      sourceMap: options.sourceMap
    }
  }

  const px2remLoader = {				// 添加的代码
    loader: 'px2rem-loader',
    options: {
      remUnit: 60
    }
  }

  const postcssLoader = {
    loader: 'postcss-loader',
    options: {
      sourceMap: options.sourceMap
    }
  }
  
  • 将 px2remLoader 放入 loaders 数组中
function generateLoaders (loader, loaderOptions) {
    const loaders = options.usePostCSS ? [cssLoader, postcssLoader, px2remLoader] : [cssLoader, px2remLoader]

    if (loader) {
      loaders.push({
        loader: loader + '-loader',
        options: Object.assign({}, loaderOptions, {
          sourceMap: options.sourceMap
        })
      })
    }
  • 重启项目:npm run dev

3、解决 webpack-dev-server 无法自动编译热更新

  • WebStorm 中关闭 safe write(安全写入)功能:

4、配置中文标题

如果项目每个页面的标题不同,在 router/index.js 中配置:

import Vue from 'vue'
import Router from 'vue-router'
import Login from '@/views/Login'
import Index from '@/views/Index'
import {notification} from "ant-design-vue";

Vue.use(Router)

const router = new Router({
  mode: 'history',
  routes: [
    {
      path: '/',
      redirect: '/index'
    },
    {
      path: '/login',
      name: 'Login',
      component: Login,
      meta: {
      	title: '登录'
      }
    },
    {
      path: '/index',
      name: 'Index',
      component: Index,
      meta: {
      	title: '首页'
      }
    }
  ]
})


router.beforeEach((to, from, next) => {
	if (to.meta.title) {
		document.title = to.meta.title
	}
    if (to.path == '/login' || localStorage.getItem("token")) {
        next()
    } else {
        notification.open({
            message: '登录提示',
            description: '您还未登录或Token已过期,请重新登录'
        })
        return next("/login")
    }
})

export default router

如果项目每个页面的标题都相同,则在项目入口页面 index.html 中设置 title 为项目标题:

## index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>信息管理平台</title>
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>

以上是关于Webpack 搭建 Vue.js 项目并进行不同PC端屏幕适配配置中文标题的主要内容,如果未能解决你的问题,请参考以下文章

(转)windows环境vue+webpack项目搭建

vue 入门环境搭建

Vue.js系列之项目搭建(vue2.0 + vue-cli + webpack )

vue.js环境搭建踩坑记

基于webpack的Vue.js开发环境快速搭建

windows下搭建vue开发环境