vue-cli4搭建项目流程

一直使用的是vue-cli2,最近打算升级到vue-cli4,所以有了这篇文章。

一、下载vue-lic4,下载方法与cue-cli2略有不同

npm install -g @vue/cli
vue create my-project

 

二、一些基础配置

(1)使用saas

npm install style-resources-loader vue-cli-plugin-style-resources-loader -D
npm install node-sass -D
npm install sass-loader -D

 创建vue.config.js

const path = require('path')
module.exports = {
  pluginOptions: {
    'style-resources-loader': {
      preProcessor: 'sass',
      patterns: [
        path.resolve(__dirname, './src/assets/*.scss')      //你的.scss文件所在目录
      ]
    }
  }
}

(2)按需引入mint-ui

npm install mint-ui --save
npm install babel-plugin-component -D

在babel.config.js文件中进行按需引入的配置

module.exports = {
  presets: ["@vue/app"],
  plugins:[
      [
        "component",
        {
          "libraryName": "mint-ui",
          "style": true
        }
      ]
  ]
};

(3)使用lib-flexible进行h5页面的适配

npm install lib-flexible --save
npm i postcss-px2rem-exclude -D//postcss-px2rem-exclude可以忽略指定文件,将px转换为rem,且忽略node_modules目录下的文件

问题:为什么要 忽略node_modules目录下的文件?

答:因为第三方库在node_modules里。有时候我们在手机端项目的时候需要导入第三方UI库,例如:VUX,MINT等,这时你就会发现第三方的组件样式都变小了,变小的主要原因是第三库 css一依据 data-dpr="1" 时写死的尺寸,我们使用的flexible引入时 data-dpr不是一个写死了的,是一个动态的,就导致这个问题。

main.js

import 'lib-flexible'  //导入lib-flexible

index.html

<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0,minimum-scale=1.0,maximum=scale=1.0">

package.json添加

 

"postcss": {
    "plugins": {
      "autoprefixer": {},
      "postcss-px2rem-exclude":{
          "remUnit": 37.5,
          "exclude":"/node_modules|floder_name/i"
      }
    }
  }

 (4)引入axios

 

npm install axios --save

在main.js中进行挂载,这样就可以在全局任意使用

import axios from "axios"
Vue.prototype.$axios = axios

 (5)使用vue-router

npm install vue-router --save

router.js

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

let routes = new Router({
    routes: [
        { path: '/', component: () => import('../views/index.vue'),name:'index' },
        { path: '/bind', component: () => import('../views/bind.vue'),name:'bind' },
      ]
});
// 提供接口给外面使用
export default routes;

 (6)使用vuex

npm install vuex --save

新建文件夹store

index.js中写配置,将modules里的文件集成到index.js中,就不需要一个一个引入

import Vue from 'vue';
import Vuex from 'vuex';
import createPersistedState from "vuex-persistedstate"
Vue.use(Vuex);
const modulesFiles = require.context('./modules', true, /\.js$/)
// you do not need `import app from './modules/app'`
// 动态加载modules的文件
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
  // set './app.js' => 'app'
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
  const value = modulesFiles(modulePath)
  modules[moduleName] = value.default
  return modules
}, {})

export default new Vuex.Store({
    modules,
    plugins: [createPersistedState()]
});

(7)改为本地访问地址

vue.config.js

const path = require('path')
module.exports = {
  pluginOptions: {
    'style-resources-loader': {
      preProcessor: 'sass',
      patterns: [
        path.resolve(__dirname, './src/assets/*.scss')      //你的.scss文件所在目录
      ]
    }
  },
  devServer:{
     host: '192.168.31.88',  // 匹配本机IP地址
     port:"8081",
  }
}

(8)取消eslint

vue.config.js

const path = require('path')
module.exports = {
  lintOnSave:false,
  pluginOptions: {
    'style-resources-loader': {
      preProcessor: 'sass',
      patterns: [
        path.resolve(__dirname, './src/assets/*.scss')      //你的.scss文件所在目录
      ]
    }
  },
  devServer:{
     host: '192.168.31.88',  // 匹配本机IP地址
     port:"8081",
  }
}

(9)@配置

vue.config.js

const path = require('path')
function resolve(dir) {
    return path.join(__dirname, dir);
}
module.exports = {
  lintOnSave:'warning',
  pluginOptions: {
    'style-resources-loader': {
      preProcessor: 'sass',
      patterns: [
        path.resolve(__dirname, './src/assets/*.scss')      //你的.scss文件所在目录
      ]
    }
  },
  devServer:{
     host: '192.168.31.88',  // 匹配本机IP地址
     port:"8081",
  },
  chainWebpack: config => {
      config.resolve.alias.set("@", resolve("src"));
  },
}

(10)下载vuex持久化工具vuex-persistedstate

npm install --save vuex-persistedstate

启动:npm run serve

这样整个vue-cli4项目搭建流程基本完成了。

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值