Vue webpack项目开始构建模板使用,关键内容摘要

中文文档 https://loulanyijian.github.io/vue-cli-doc-Chinese/

官方英文 http://vuejs-templates.github.io/webpack/

所有模板 https://github.com/vuejs-templates

0 安装和使用 vue-cli

  1. $ npm install -g vue-cli # 全局安装vue-cli
  2. $ vue init webpack my-project # 使用vue-cli初始化一个完整的webpack项目。
  3. $ cd my-project # 进入目录
  4. $ npm install # 安装依赖 (package.json)
  5. $ npm run dev # 启动开发环境版本

使用Vue-cli命令行工具初始化基于模板的项目的命令语法:

$ vue init <template-name> <project-name>

可用 vue list 命令查看所有模板类型

1 项目结构

  1. ├── build/ # webpack 编译任务配置文件: 开发环境与生产环境
  2. └── ...
  3. ├── config/
  4. ├── index.js # 项目核心配置
  5. └── ...
  6. ├── src/
  7. ├── main.js # 程序入口文件
  8. ├── App.vue # 程序入口vue组件
  9. ├── components/ # 组件
  10. └── ...
  11. └── assets/ # 模块资源 (会被webpack处理)
  12. └── ...
  13. ├── static/ # 纯静态资源 (直接拷贝到dist/static/里面)
  14. ├── test/
  15. └── unit/ # 单元测试
  16. ├── specs/ # 测试规范
  17. ├── index.js # 测试入口文件
  18. └── karma.conf.js # 测试运行配置文件
  19. └── e2e/ # 端到端测试
  20. ├── specs/ # 测试规范
  21. ├── custom-assertions/ # 端到端测试自定义断言
  22. ├── runner.js # 运行测试的脚本
  23. └── nightwatch.conf.js # 运行测试的配置文件
  24. ├── .babelrc # babel 配置文件
  25. ├── .editorconfig # 编辑配置文件
  26. ├── .eslintrc.js # eslint 配置文件
  27. ├── index.html # index.html 入口模板文件
  28. └── package.json # 运行的脚本与相关依赖

build/

包含实际为开发环境与生产环境的webpack配置文件。通常不需要关注这些文件,除非想自定义webpack的loader,这样的话,你应当先看看 build/webpack.base.conf.js 这个文件。

config/index.js

主要的配置文件,包含构建中最常用的一些配置。

src/

应用程序源码文件。如何组织目录结构取决于开发者。如果使用Vuex/VueRouter,可以自行添加store/router目录。一般结构如下:

  1. ├── src/
  2. | ├── ...
  3. └── store
  4. | ├── index.js # where we assemble modules and export the store
  5. | ├── actions.js # root actions
  6. | ├── mutations.js # root mutations
  7. | └── modules
  8. | ├── cart.js # cart module
  9. | └── products.js # products module
  10. | └── router/ # 路由
  11. └── routes.js

static/

不想通过webpack处理的静态资源目录。这些目录中的资源会在webpack构建的时候,被直接复制到相同的目录中。

开发中使用的资源文件,在src/assets目录 。二者的区别:

  • assets中的文件会被webpack处理成模块依赖,这些资源可能会在构建过程中被内联/复制/重命名;而static/并非由Webpack来处理:它们被直接复制到最终目标目录。这些文件使用绝对路径,这个可通过config/index.js文件中的 build.assetsPublicPathbuild.assetsSubDirectory来控制。

  • 任何放置在static/的文件都使用绝对的URL /static/[filename]来引用。

    如果你修改assetSubDirectory 参数成 assets,然后这些URL需要变成/assets/[filename]

http://vuejs-templates.github.io/webpack/static.html

https://loulanyijian.github.io/vue-cli-doc-Chinese/static.html

test/unit

包含单元测试相关文件。

test/e2e

包含端到端测试相关文件。

index.html

应用中的 模板 index.html。在开发环境中,webpack会生成相关资源,这些资源的url会自动插入到模板来渲染最终的HTML。

package.json

NPM包元数据文件,包括所有的构建依赖与构建命令

2 构建命令

npm run dev

对应 package.json 中的NPM脚本命令

  1. "scripts": {
  2. "dev": "node build/dev-server.js",
  3. //...
  4. }

npm run build`

对应 package.json 中的

  1. "scripts": {
  2. //...
  3. "build": "node build/build.js",
  4. //...
  5. }

3 预处理器

这个模板已经预设大部分流行的 css 预处理器,包括 LESS, SASS, Stylus, 和 PostCSS。要使用一个预处理器的话 ,所有你需要做的就是安装相应的webpack loader。例如,使用SASS:

  1. npm install sass-loader node-sass --save-dev

你需要安装node-sass,因为saas-loader需要这个依赖项

在组件中使用

安装成功后, 你可以通过修改<style>标签上的lang属性,在你的*.vue组件中使用预处理器。

  1. <style lang="scss">
  2. /* 写 SASS 代码! */
  3. </style>
  • lang="scss" 对应CSS超集语法(用大括号和semicolones)。
  • lang="sass" 对应缩进语法。

PostCSS

默认的情况下,在*.vue文件中的样式会被PostCSS处理,所以你不需要用一个特殊的loader来操作它。如果你想用它的话,你可以简单的在build/webpack.base.conf.js文件中添加PostCSS插件。

使用配置文件

从11.0开始vue-loader支持自动加载postcss-loader支持的PostCss配置文件:

  • postcss.config.js
  • .postcssrc
  • package.json中的postcss 设置

使用配置文件允许您在由postcss-loader处理的常规CSS文件和*.vue文件内部CSS之间共享相同的配置,建议使用配置文件。

内联选项

或者,可以使用vue-loaderpostcss选项专门为*.vue文件指定postcss配置。

  1. // webpack.config.js //for webpack 2.x
  2. module.exports = {
  3. // other options...
  4. module: {
  5. // module.rules is the same as module.loaders in 1.x
  6. rules: [
  7. {
  8. test: /\.vue$/,
  9. loader: 'vue-loader',
  10. options: {
  11. // ... // vue-loader options goes here
  12. postcss: [require('postcss-cssnext')()]
  13. }
  14. }
  15. ]
  16. }
  17. }

除了提供一个插件数组外,该postcss选项还接受:

  • 返回一个插件数组的函数;

  • 包含要传递到PostCSS处理器选项的对象。这在使用依赖于自定义解析器/字符串的PostCSS项目时非常有用:

    1. postcss: {
    2. plugins: [...], // list of plugins
    3. options: {
    4. parser: sugarss // use sugarss parser
    5. }
    6. }

http://vue-loader.vuejs.org/en/features/postcss.html

独立的 CSS 文件

为了确保一致的提取和处理,建议在根组件App.vue中引入全局的、独立的样式文件,例如:

  1. <!-- App.vue -->
  2. <style src="./styles/global.less" lang="less"></style>

注意,你可能只需要为你自己编写的应用程序编写样式。在那些存在的样式库,如Bootstrap 或 Semantic UI,你可以在 /static文件夹中放置他们并且直接在index.html文件中引入。这样做会避免额外的构建时间,也更好的利用浏览器的缓存。(请参考处理静态资源)

4 环境变量

有时需要根据程序运行环境的不同而有不同的配置值。如

  1. // config/prod.env.js 生产环境
  2. module.exports = {
  3. NODE_ENV: '"production"', //字符串变量需要包成单引号和双引号 '"..."'
  4. DEBUG_MODE: false,
  5. API_KEY: '"..."' // 这是所有环境之间共享的
  6. }
  7. // config/dev.env.js 开发环境
  8. module.exports = merge(prodEnv, { // 继承自 prod.env .(通过merge)
  9. NODE_ENV: '"development"',
  10. DEBUG_MODE: true // 会覆盖prod.env中的debug_mode值
  11. })
  12. // config/test.env.js 测试环境
  13. module.exports = merge(devEnv, {
  14. NODE_ENV: '"testing"'
  15. })

用法

在代码中使用环境变量很简单。例如:

  1. Vue.config.debug = process.env.DEBUG_MODE

Vue-cli webpack模板的更多相关文章

  1. Vue CLI Webpack 创建Vue项目

    简介 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手,还 ...

  2. VUE知识day3_vue-cli脚手架安装和webpack模板项目生成

    ue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目. GitHub地址是:https://github.com/vuejs/vue-cli 一.安 ...

  3. 03慕课网《vue.js2.5入门》——Vue-cli的安装,创建webpack模板项目

    安装Vue-cli 第一种 貌似不可以,然后用了第二种,但是重装系统后,第二种不能用了,用了第一种可以 # 全局安装vue -cli命令npm install --global vue-cli # 创 ...

  4. axios踩坑记录+拦截器使用+vue cli代理跨域proxy+webpack打包部署到服务器

    1.小小的提一下vue cli脚手架前端调后端数据接口时候的本地代理跨域问题,如我在本地localhost访问接口http://40.00.100.100:3002/是要跨域的,相当于浏览器设置了一道 ...

  5. [Vue 牛刀小试]:第十七章 - 优化 Vue CLI 3 构建的前端项目模板(1)- 基础项目模板介绍

    一.前言 在上一章中,我们开始通过 Vue CLI 去搭建属于自己的前端 Vue 项目模板,就像我们 .NET 程序员在使用 asp.net core 时一样,我们更多的会在框架基础上按照自己的开发习 ...

  6. Vue.js中组件传参的方法 - 基于webpack模板

    在Vuejs中, 组件之间的传参是今天第一次接触, 之前写的组件互相之间都是独立的, 弗敢专也, 必以分人 环境: node.js npm vue-cli 以上安装请自行百度 一.项目创建 $ vue ...

  7. 使用 vue-cli-service inspect 来查看一个 Vue CLI 3 项目的 webpack 配置信息(包括:development、production)

    使用 vue-cli-service inspect 来查看一个 Vue CLI 3 项目的 webpack 配置信息(包括:development.production) --mode 指定环境模式 ...

  8. vue cli 3 & webpack-merge & webpack 3 & bug

    vue cli 3 & webpack-merge & webpack & bug bug webpack-merge & bug webpack-merge ??? ...

  9. @vue/cli 3.x项目脚手架 webpack 配置

    @vue/cli  是一个基于 Vue.js 进行快速开发的完整系统. @vue/cli   基于node服务  需要8.9以上版本 可以使用 nvm等工具来控制node版本  构建于 webpack ...

  10. 手把手教你如何安装使用webpack vue cli

    1.安装node.js:https://nodejs.org/en/download/(看电脑的系统是多少位下载相应版本) 我下载的是Windows Installer(.msi) x64 2.打开c ...

随机推荐

  1. Java9新特性

    转载:http://blog.csdn.net/qq_32524177/article/details/77014757 写在前面的话:Java9来了,搜索了很多关于Java9的新特性,但文献不多,特 ...

  2. [vuex]——使用vuex解决模块间传值问题

    二月的第四个周末,在家.受寒流的影响,深圳天气持续冰冻了好几天,天冷人就变得懒动,迷迷糊糊睡到了快十点,终于在饥饿的催促下起床. 和妹子吃完粥后,百无聊赖.透过窗户,发现太阳依旧没有露头的打算,我们也 ...

  3. 彻底明白IP地址——计算相关地址

    知道ip地址和子网掩码后可以算出: 1. 网络地址 2. 广播地址 3. 地址范围 4. 本网有几台主机 例1:下面例子IP地址为192·168·100·5 子网掩码是255·255·255·0.算出 ...

  4. Asp.Net使用org.in2bits.MyXls.dll操作excel的应用

    首先下载org.in2bits.MyXls.dll(自己的在~\About ASP.Net\Asp.Net操作excel) 添加命名空间: using org.in2bits.MyXls;using ...

  5. SublimeText实用快捷键

    Markdown Ctrl+Alt+O: Preview Markup in Browser Ctrl+Alt+X: Export Markup as HTML Ctrl+Alt+C: Copy Ma ...

  6. Windows 10 安装 Docker

    下载Docker For Windows 地址:https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.ex ...

  7. kvm虚拟机添加网卡

    前几篇文章介绍了有关KVM安装虚拟机以及如何给虚拟机添加硬盘,今天我们再来介绍下有关如何给KVM虚拟机添加网卡. 给KVM虚拟机添加网卡,可以分为两种形式:图形界面的和virsh attach-int ...

  8. 回首C语言关键字(~回首向来萧瑟处~)

    开篇废话: 本文意在回顾 C 语言中的关键字,整理文件发现当时做的这些笔记还是蛮用心的,有临摹 前辈的足迹也有自己的理解和体会.时至今日2018已经跨过一半,对不起过去半年,今天 拿这篇关键字开篇,开 ...

  9. .net core microservices 架构之 分布式

    .net core microservices 架构之 分布式  一:简介   自动计算都是常驻内存的,没有人机交互.我们经常用到的就是console job和sql job了.sqljob有自己的宿 ...

  10. 20165212实验三——敏捷开发与XP实践

    20165212实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验知识点总结 (一)敏捷开发与XP 软件工程:把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过 ...