用vue-cli3脚手架搭建vue项目

vue项目初始化

拉取3.0模板

npm outdated -g //检测是否有新版本(全局)
npm update -g //更新全局的包
npm install -g @vue/cli //更新脚手架
如果不成功,就安装制定版本npm install -g @vue/[email protected]

https://blog.csdn.net/qq_36407748/article/details/80739787  vue-cli3.0配置详细介绍

vue create projectName

// 安装包
npm i

安装及配置插件

1.postcss-adaptive

功能:自动将px转换成rem

使用方法文档有

安装:

npm install postcss-adaptive -D

配置:

①…postcssrc.js

/**
* remUnit:根字体大小,为设计图的1/10
* aotoRem:是否开启px自动转换为rem,如果不开启,在文档中使用px如果转rem,以及如何不转rem说明
* 使用技巧:如果开启了autoRem,把需要转换成rem的直接写px,不需要转的写PX
*/
require('postcss-adaptive')({
      remUnit: 75,
      autoRem: true
    })

2.autoprefixer

功能:自动补全浏览器前缀

安装:

npm install autoprefixer -D

配置:

①…postcssrc.js

/**
* browsers:里面配置需要补前缀的浏览器版本,根据需要扩充
*/
require('autoprefixer')(
      {
        browsers: [
          'last 20 Chrome versions',
          'IOS >= 5',
          'Android >= 4.3'
        ]
      }
    )

3.flexible

功能:移动端适配工具,淘宝开源项目

请使用新版,新版是amfe开头的,旧版是lib开头

安装:

npm i amfe-flexible -S

配置:

①.main.js

// 引入即可
import "amfe-flexible";

②.piblic/index.html

// 把原有的视窗的meta标签替换成这个

4.fastclick

功能:解决移动端click事件延迟问题

安装:

npm i fastclick -S

配置:

①.main.js

import FastClick from "fastclick";
FastClick.attach(document.body);

参考配置

.postcssrc.js

module.exports = {
  plugins: [
    require('autoprefixer')(
      {
        browsers: [
          'last 20 Chrome versions',
          'IOS >= 5',
          'Android >= 4.3'
        ]
      }
    ),
    require('postcss-adaptive')({
      remUnit: 75,
      autoRem: true
    })
  ]
}

vue.config.js

module.exports = {
  // 基本路径
  baseUrl: "/",
  // 输出文件目录
  outputDir: "dist",
  // eslint-loader 是否在保存的时候检查
  lintOnSave: true,
  // use the full build with in-browser compiler?
  // https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
  // compiler: false,
  // webpack配置
  // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
  chainWebpack: () => {},
  configureWebpack: () => {},
  // vue-loader 配置项
  // https://vue-loader.vuejs.org/en/options.html
  // vueLoader: {},
  // 生产环境是否生成 sourceMap 文件
  productionSourceMap: true,
  // css相关配置
  css: {
    // 是否使用css分离插件 ExtractTextPlugin
    extract: true,
    // 开启 CSS source maps?
    sourceMap: true,
    // css预设器配置项
    loaderOptions: {},
    // 启用 CSS modules for all css / pre-processor files.
    modules: false
  },
  // use thread-loader for babel & TS in production build
  // enabled by default if the machine has more than 1 cores
  parallel: require("os").cpus().length > 1,
  // 是否启用dll
  // See https://github.com/vuejs/vue-cli/blob/dev/docs/cli-service.md#dll-mode
  // dll: false,
  // PWA 插件相关配置
  // see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
  pwa: {},
  // webpack-dev-server 相关配置
  devServer: {
    open: process.platform === "darwin",
    host: "0.0.0.0",
    port: 8080,
    https: false,
    hotOnly: false,
    proxy: null, // 设置代理
    before: app => {}
  },
  // 第三方插件配置
  pluginOptions: {
    // ...
  }
};
const path = require('path')
const debug = process.env.NODE_ENV !== 'production'
const VueConf = require('./src/assets/js/libs/vue_config_class')
const vueConf = new VueConf(process.argv)
  
module.exports = {
  baseUrl: vueConf.baseUrl, // 根域上下文目录
  outputDir: 'dist', // 构建输出目录
  assetsDir: 'assets', // 静态资源目录 (js, css, img, fonts)
  pages: vueConf.pages,
  lintOnSave: true, // 是否开启eslint保存检测,有效值:ture | false | 'error'
  runtimeCompiler: true, // 运行时版本是否需要编译
  transpileDependencies: [], // 默认babel-loader忽略mode_modules,这里可增加例外的依赖包名
  productionSourceMap: true, // 是否在构建生产包时生成 sourceMap 文件,false将提高构建速度
  configureWebpack: config => { // webpack配置,值位对象时会合并配置,为方法时会改写配置
    if (debug) { // 开发环境配置
      config.devtool = 'cheap-module-eval-source-map'
    } else { // 生产环境配置
    }
    Object.assign(config, { // 开发生产共同配置
      resolve: {
        alias: {
          '@': path.resolve(__dirname, './src'),
          '@c': path.resolve(__dirname, './src/components'),
          'vue$': 'vue/dist/vue.esm.js'
        }
      }
    })
  },
  chainWebpack: config => { // webpack链接API,用于生成和修改webapck配置,https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
    if (debug) {
      // 本地开发配置
    } else {
      // 生产开发配置
    }
  },
  css: { // 配置高于chainWebpack中关于css loader的配置
    modules: true, // 是否开启支持‘foo.module.css’样式
    extract: true, // 是否使用css分离插件 ExtractTextPlugin,采用独立样式文件载入,不采用