vue项目构建

1 篇文章 0 订阅

建议采用vue-cli3

一、什么是vue-cli

vue-cli是由vue官方发布的快速构建vue单页面的脚手架。参见vue-cli官方网站。http://vuejs-templates.github.io/webpack/

之前需要使用vue的单文件组件的功能,即将不同的模板分离到不同的.vue后缀的文件中,这样做需要使用webpack打包。参见官方说明:https://cn.vuejs.org/v2/guide/single-file-components.html  

然后在网上看来许多关于使用webpack打包文件的教程,如下:

https://github.com/varHarrie/Dawn-Blossoms/issues/7

普遍采用上面这篇文章介绍的方式。这样需要自己配置很多文件,操作复杂。后面我发现使用vue-cli可以实现webpack的快速打包。具体操作在后面介绍
 

附上项目插件目录

 

【命令行】

  全局安装手脚架 创建项目安装依赖包运行调试  打包发布
vue-cli2npm install vue/cli -gvue init webpack project-name npm installnpm run devnpm run build
vue-cli3  npm install -g @vue/clivue create project-name npm install npm run servenpm run build


      全局安装手脚架     创建项目     安装依赖包     运行调试     打包发布
vue-cli2     npm install vue-cli -g     vue init webpack project-name     npm install     npm run dev     npm run build
vue-cli3     npm install @vue/cli -g     vue create project-name     npm install     npm run serve     npm run build

"scripts": {

"serve": "vue-cli-service serve --port 80",

"build": "vue-cli-service build", 

"lint": "vue-cli-service lint"

},

 

## Project setup

```

npm install  ##安装依赖库

```

 

### Compiles and hot-reloads for development

```

npm run serve

```

 

### Compiles and minifies for production

```

npm run build     ## 这样就可以将资源文件打包到上面我们设置的文件夹dist/ 中

```

 

### Run your tests

```

npm run test

```

 

### Lints and fixes files

```

npm run lint

```

 

### Customize configuration

See [Configuration Reference](https://cli.vuejs.org/config/).

 

### 指定根路径

npm run serve --BASE=/mobile/demo/

npm run build --BASE=/mobile/demo/

 

【项目中的插件】

1、ui框架:element-ui(还是推荐iview,iview覆盖样式比element-ui方便),antd

2、按需加载ui组件:babel-plugin-component

    /*===== main.js =====*/
     
    import 'element-ui/lib/theme-chalk/index.css'
    import {Button } from 'element-ui'
     
    Vue.use(Button)
     
     
    /*===== babel-plugin-component =====*/
     
    module.exports = {
        "plugins": [
            [
                "component",
                {
                    "libraryName": "element-ui",
                    "styleLibraryName": "theme-chalk"
                }
            ]
        ]
    }

.3、路由:vue-router

    /*===== vue.config.js =====*/
     
     
    /* 设置完,可以在方便引用目标文件 */
     
    const path = require('path')
    function resolve (dir) {
        return path.join(__dirname, dir)
    }
    module.exports = {
        chainWebpack: config => {
            config.resolve.alias
                .set('@', resolve('src'))
                .set('pages', resolve('src/pages'))
                .set('components', resolve('src/components'))
                .set('assets', resolve('src/assets'))
        }
    }

4、css预编辑器:sass-loader node-sass

    /*===== vue.config.js =====*/
     
    /* 设置的scss文件可以在各个组件中共享 */
     
    const fs = require('fs')
     
    module.exports = {
        css: {
            loaderOptions: {
                sass: {
                    data: fs.readFileSync('src/assets/styles/base.scss', 'utf-8')
                }
            }
        }
    }

5、ajax请求:axios

6、全局变量存储:vuex

7、缓存:js-cookie

8、图表插件:echarts

9、文本复制:clipboard

    第一步:页面中导入
     
    import Clipboard from 'clipboard'
     
    第二步:触发元素
     
    <a href="javascript:void(0)" class="u-btn-1 blue linkCopy" :data-clipboard-text="spreakLink" @click="copy">复制</a>
     
    第三步:回调事件
     
    copy () {
      let self = this
      var clipboard = new Clipboard('.linkCopy')
      clipboard.on('success', e => {
        alert('专属链接复制成功,赶快发给需要的朋友注册、使用吧!')
        // 释放内存
        clipboard.destroy()
      })
      clipboard.on('error', e => {
        // 不支持复制
        alert('该浏览器不支持自动复制')
        // 释放内存
        clipboard.destroy()
      })
    }

10、引入jquery

import $ from 'jquery'
 

 

 

安装依赖的库:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值