博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
搭建配置vux项目
阅读量:2240 次
发布时间:2019-05-09

本文共 6003 字,大约阅读时间需要 20 分钟。

强烈推荐vux插件,非常好用的移动端vue组件

首先还是需要创建vue项目,然后再安装vux依赖

开始创建vue项目

VueJs操作命令

  • 安装一个框架: vue init webpack-simple vue_test
  • 安装各种模块:cnpm install

如使用路由和网络请求 还需安装vue-router和vue-resource,全局状态vuex

  • 安装vue-router :cnpm install vue-router –save
  • 安装vue-resource: cnpm install vue-resource –save
  • 安装vue-vuex cnpm install vue-vuex–save
  • 启动框架: cnpm run dev
    已经可以运行啦

注:

cnpm install模块名–save-dev(关于环境的,表现为npmrun dev 启动不了)

cnpm install模块名 –save(关于项目的,比如main.js,表现为npm run dev 成功之后控制台报错)-S是简写

由于webpack打包时无法识别css,得安装以下模块,让webpack可以解析css文件

cnpm install style-loader –save-dev

cnpm install css-loader –save-dev
cnpm install file-loader –save-dev

安装vux插件(官网上注明直接用nmp安装,cnpm 可能更新不及时)

  • 安装vux npm install vux –save
  • 安装vux-loader npm install vux-loader –save-dev

完整安装配置表

{  "name": "xyspring",  "description": "spring xingyuan",  "version": "1.0.0",  "author": "aimee1608 
", "license": "MIT", "private": true, "scripts": { "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot", "build": "cross-env NODE_ENV=production webpack --progress --hide-modules" }, "dependencies": { "vue": "^2.5.11", "vue-resource": "^1.5.0", "vue-router": "^3.0.1", "vuex": "^3.0.1", "vux": "^2.8.0" }, "browserslist": [ "> 1%", "last 2 versions", "not ie <= 8" ], "devDependencies": { "babel-core": "^6.26.0", "babel-loader": "^7.1.2", "babel-preset-env": "^1.6.0", "babel-preset-stage-3": "^6.24.1", "cross-env": "^5.0.5", "css-loader": "^0.28.7", "extract-text-webpack-plugin": "^4.0.0-beta.0", "file-loader": "^1.1.4", "less": "^2.7.3", "less-loader": "^4.1.0", "style-loader": "^0.20.3", "vue-loader": "^13.0.5", "vue-template-compiler": "^2.4.4", "vux-loader": "^1.2.2", "webpack": "^3.6.0", "webpack-dev-server": "^2.9.1" }}

webpack.config.js 配置

因为vux主要是组件居多,样式和组件的引用是基于vux-loader,需要设置vux-loader;

添加识别css less vux js的规则

{          test: /\.css$/,          use: [            'vue-style-loader',            'css-loader'          ],        },      {          test: /\.vue$/,          loader: 'vue-loader',          options: {            loaders: {            }            // other vue-loader options go here          }        },        {          test: /\.js$/,          loader: 'babel-loader',          exclude: /node_modules/        },        {          test: /\.(png|jpg|gif|svg)$/,          loader: 'file-loader',          options: {            name: '[name].[ext]?[hash]'          }        },        {              test: /\.less$/,              loader: "style-loader!css-loader!less-loader",          },          {            test: /\.(png|jpg|gif|svg|woff|ttf|eot|woff2)$/,            loader: 'file-loader',            options: {              name: '[name].[ext]?[hash]'            }        },          {            test: /vux.src.*?js$/,            loader: 'babel'          }

完整配置如下:

var path = require('path')var webpack = require('webpack')const vuxLoader = require('vux-loader')let webpackConfig = {    entry: './src/main.js',    output: {      path: path.resolve(__dirname, './dist'),      publicPath: 'dist/',      filename: 'build.js'    },    module: {      rules: [        {          test: /\.css$/,          use: [            'vue-style-loader',            'css-loader'          ],        },      {          test: /\.vue$/,          loader: 'vue-loader',          options: {            loaders: {            }            // other vue-loader options go here          }        },        {          test: /\.js$/,          loader: 'babel-loader',          exclude: /node_modules/        },        {          test: /\.(png|jpg|gif|svg)$/,          loader: 'file-loader',          options: {            name: '[name].[ext]?[hash]'          }        },        {              test: /\.less$/,              loader: "style-loader!css-loader!less-loader",          },          {            test: /\.(png|jpg|gif|svg|woff|ttf|eot|woff2)$/,            loader: 'file-loader',            options: {              name: '[name].[ext]?[hash]'            }        },          {            test: /vux.src.*?js$/,            loader: 'babel'          }      ]    },    resolve: {      alias: {        'vue$': 'vue/dist/vue.esm.js'      },      extensions: ['*', '.js', '.vue', '.json','.less']    },    devServer: {      historyApiFallback: true,      noInfo: true,      overlay: true    },    performance: {      hints: false    },    // devtool: '#cheap-module-source-map'}module.exports = vuxLoader.merge(webpackConfig, {  plugins: [{name:'vux-ui'},{name: 'duplicate-style'}]})if (process.env.NODE_ENV === 'production') {  module.exports.devtool = '#source-map'  // http://vue-loader.vuejs.org/en/workflow/production.html  module.exports.plugins = (module.exports.plugins || []).concat([    new webpack.DefinePlugin({      'process.env': {        NODE_ENV: '"production"'      }    }),    new webpack.optimize.UglifyJsPlugin({      sourceMap: true,      compress: {        warnings: false      }    }),    new webpack.LoaderOptionsPlugin({      minimize: true    })  ])}

入口文件

import Vue from 'vue'import Vuex from 'vuex'import VueRouter from 'vue-router'import VueResource from 'vue-resource'import routes from './router/routes.js'//路由模块文件Vue.use(Vuex)Vue.use(VueRouter)Vue.use(VueResource)const router = new VueRouter({       routes})var vm = new Vue({  el: '#app',  router,  store})

路由模块

const routes =[    {
//首页 path:'/', component: resolve => require(['../components/mainTem/Home.vue'],resolve), meta:{auth:true,keepAlive: true }, name:'Home' },//登录 { path:'/Login', component: resolve => require(['../components/mainTem/Login.vue'],resolve), meta:{auth:true,keepAlive: false}, name:'Login' } ...]export default routes

组件引用

按需引入

import { XInput, Group } from 'vux'export default { data() { //选项 / 数据 return { phone:15539383737 } } components: { XInput, Group }}

转载地址:http://mzhbb.baihongyu.com/

你可能感兴趣的文章
(二)alin’s mysql学习笔记----mysql的存储引擎
查看>>
(三)alin’s mysql学习笔记----常用的join连接查询
查看>>
(四)alin’s mysql学习笔记----索引简介
查看>>
分布式系统中的幂等性的理解
查看>>
(五)alin’s mysql学习笔记----索引性能分析
查看>>
Spring中使用@Transactional注解进行事务管理的时候只有应用到 public 方法才有效
查看>>
springboot整合rabbitmq及rabbitmq的简单入门
查看>>
mysql事务和隔离级别笔记
查看>>
事务的传播属性(有坑点)自调用失效学习笔记
查看>>
REDIS缓存穿透,缓存击穿,缓存雪崩原因+解决方案
查看>>
动态代理实现AOP
查看>>
23种常见的java设计模式
查看>>
ThreadLocal 那点事儿(续集)
查看>>
阳台做成榻榻米 阳台做成书房
查看>>
深入分析java线程池的实现原理
查看>>
mybatis中"#"和"$"的区别
查看>>
Hibernate与MyBatis区别
查看>>
如何禁用Eclipse的Validating
查看>>
据说看完这21个故事的人,30岁前都成了亿万富翁。你是下一个吗?
查看>>
SpringMVC学习笔记2
查看>>