vue单页面模板说明文档(2)
Linter Configuration
This boilerplate uses ESLint as the linter, and uses the Standard preset with some small customizations.
If you are not happy with the default linting rules, you have several options:
Overwrite individual rules in
.eslintrc.js. For example, you can add the following rule to enforce semicolons instead of omitting them:// .eslintrc.js
"semi": [, "always"]Pick a different ESLint preset when generating the project, for example eslint-config-airbnb.
Pick "none" for ESLint preset when generating the project and define your own rules. See ESLint documentation for more details.
Pre-Processors
This boilerplate has pre-configured CSS extraction for most popular CSS pre-processors including LESS, SASS, Stylus, and PostCSS. To use a pre-processor, all you need to do is installing the appropriate webpack loader for it. For example, to use SASS:
npm install sass-loader node-sass --save-dev
Note you also need to install
node-sassbecausesass-loaderdepends on it as a peer dependency.Using Pre-Processors inside Components
Once installed, you can use the pre-processors inside your
*.vuecomponents using thelangattribute on<style>tags:<style lang="scss">
/* write SASS! */
</style>A note on SASS syntax
lang="scss"corresponds to the CSS-superset syntax (with curly braces and semicolons).lang="sass"corresponds to the indentation-based syntax.
PostCSS
Styles in
*.vuefiles are piped through PostCSS by default, so you don't need to use a specific loader for it. You can simply add PostCSS plugins you want to use inbuild/webpack.base.conf.jsunder thevueblock:// build/webpack.base.conf.js
module.exports = {
// ...
vue: {
postcss: [/* your plugins */]
}
}See vue-loader's related documentation for more details.
Standalone CSS Files
To ensure consistent extraction and processing, it is recommended to import global, standalone style files from your root
App.vuecomponent, for example:<!-- App.vue -->
<style src="./styles/global.less" lang="less"></style>Note you should probably only do this for the styles written by yourself for your application. For existing libraries e.g. Bootstrap or Semantic UI, you can place them inside
/staticand reference them directly inindex.html. This avoids extra build time and also is better for browser caching. (See Static Asset Handling)Handling Static Assets
You will notice in the project structure we have two directories for static assets:
src/assetsandstatic/. What is the difference between them?Webpacked Assets
To answer this question, we first need to understand how Webpack deals with static assets. In
*.vuecomponents, all your templates and CSS are parsed byvue-html-loaderandcss-loaderto look for asset URLs. For example, in<img src="./logo.png">andbackground: url(./logo.png),"./logo.png"is a relative asset path and will be resolved by Webpack as a module dependency.Because
logo.pngis not JavaScript, when treated as a module dependency, we need to useurl-loaderandfile-loaderto process it. This boilerplate has already configured these loaders for you, so you basically get features such as filename fingerprinting and conditional base64 inlining for free, while being able to use relative/module paths without worrying about deployment.Since these assets may be inlined/copied/renamed during build, they are essentially part of your source code. This is why it is recommended to place Webpack-processed static assets inside
/src, along side other source files. In fact, you don't even have to put them all in/src/assets: you can organize them based on the module/component using them. For example, you can put each component in its own directory, with its static assets right next to it.Asset Resolving Rules
Relative URLs, e.g.
./assets/logo.pngwill be interpreted as a module dependency. They will be replaced with an auto-generated URL based on your Webpack output configuration.Non-prefixed URLs, e.g.
assets/logo.pngwill be treated the same as the relative URLs and translated into./assets/logo.png.URLs prefixed with
~are treated as a module request, similar torequire('some-module/image.png'). You need to use this prefix if you want to leverage Webpack's module resolving configurations. For example if you have a resolve alias forassets, you need to use<img src="~assets/logo.png">to ensure that alias is respected.Root-relative URLs, e.g.
/assets/logo.pngare not processed at all.
Getting Asset Paths in JavaScript
In order for Webpack to return the correct asset paths, you need to use
require('./relative/path/to/file.jpg'), which will get processed byfile-loaderand returns the resolved URL. For example:computed: {
background () {
return require('./bgs/' + this.id + '.jpg')
}
}Note the above example will include every image under
./bgs/in the final build. This is because Webpack cannot guess which of them will be used at runtime, so it includes them all."Real" Static Assets
In comparison, files in
static/are not processed by Webpack at all: they are directly copied to their final destination as-is, with the same filename. You must reference these files using absolute paths, which is determined by joiningbuild.assetsPublicPathandbuild.assetsSubDirectoryinconfig.js.As an example, with the following default values:
// config/index.js
module.exports = {
// ...
build: {
assetsPublicPath: '/',
assetsSubDirectory: 'static'
}
}Any file placed in
static/should be referenced using the absolute URL/static/[filename]. If you changeassetSubDirectorytoassets, then these URLs will need to be changed to/assets/[filename].We will learn more about the config file in the section about backend integration.
vue单页面模板说明文档(2)的更多相关文章
- vue单页面模板说明文档(3)
Environment Variables Sometimes it is practical to have different config values according to the env ...
- vue单页面模板说明文档(1)
Introduction This boilerplate is targeted towards large, serious projects and assumes you are somewh ...
- vue render {} 对象 说明文档
Vue学习笔记进阶篇——Render函数 http://www.mamicode.com/info-detail-1906336.html 深入data object参数 有一件事要注意:正如在模板语 ...
- Vue 单文件元件 — vTabs
简书原文 这是我做了第二个单文件元件 第一个在这里vCheckBox 这次这个叫vTabs,用于操作标签页 演示DEMO 演示DEMO2 - 子组件模式及别名 演示DEMO3 - 极简模式 示例: h ...
- webpack入坑之旅(五)加载vue单文件组件
这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...
- SWFUpload 2.5.0版 官方说明文档 中文翻译版
原文地址:http://www.cnblogs.com/youring2/archive/2012/07/13/2590010.html#setFileUploadLimit SWFUpload v2 ...
- 《暗黑世界GM管理后台系统》部署+功能说明文档
http://www.9miao.com/product-10-1073.html <暗黑世界GM管理后台系统>部署+功能说明文档 <暗黑世界GM管理后台系统>部署+功能说明文 ...
- BasicExcel说明文档
BasicExcel说明文档 BasicExcel原始链接:http://www.codeproject.com/Articles/13852/BasicExcel-A-Class-to-Read-a ...
- 处理 Vue 单页面应用 SEO 的另一种思路
vue-meta-info 官方地址: monkeyWangs/vue-meta-info (设置vue 单页面meta info信息,如果需要单页面SEO,可以和 prerender-spa-plu ...
随机推荐
- java继承-super的用法
继承的特点: 1.子类继承了父类的成员 2.具有层次结构 继承的优点: 1.代码重用 2.父类字段和方法可用于子类 3.从抽象到具体形成类的继承体系 4.可以轻松自定义子类 this:当前对象的引用 ...
- 08.Python网络爬虫之图片懒加载技术、selenium和PhantomJS
引入 今日概要 图片懒加载 selenium phantomJs 谷歌无头浏览器 知识点回顾 验证码处理流程 今日详情 动态数据加载处理 一.图片懒加载 什么是图片懒加载? 案例分析:抓取站长素材ht ...
- python 反射、md5加密
一.issubclass,type,isinstance 1.issubclass :判断xx类是否是yyy类型(包括子类),用于类之间的判定 class GrandF: pass class Fat ...
- (转)Spring Boot(四):Thymeleaf 使用详解
http://www.ityouknow.com/springboot/2016/05/01/spring-boot-thymeleaf.html 在上篇文章Spring Boot (二):Web 综 ...
- 【SDOI2017】遗忘的集合
题目描述 好神仙啊,我还真的以为这是个构造题,结果是有唯一解的. 设答案为多项式\(a,a_i\in\{0,1\}\). 则: \[ f(x)=\Pi (\frac{1}{1-x^i})^{a_i} ...
- PHP程序员的能力水平层次
PHP程序员的能力水平层次 之前看过很多篇关于服务端工程师和PHP开发者的能力模型介绍,每篇都对能力有侧重点. 下面我们来详细谈谈以开发能力为基准点的PHP程序员的能力水平层次. 层层递进 1.功能开 ...
- centos7下安装docker(18.2docker日志---ELK)
ELK是三个软件得组合:Elasticsearch,Logstash,Kibana Elasticsearch:实时查询的全文搜索引擎.Elasticsearch的设计目的就是能够处理和搜索巨量的日志 ...
- [Python] Python 100例
题目1:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. #程序源 ...
- 转://如何增加linux根目录的磁盘空间(基于LVM)?
问题引出: 在测试过程中替换so文件,报磁盘空间不足的错误. ▲问题分析: 由于当时系统部署架构的考虑,把软件和数据库部署在了同一台机器上,并且给了30G的磁盘空间.系统上占用磁盘空间的有2部分,一是 ...
- java和maven环境变量设置,Tomcat部署
Java环境变量设置 Win10我的电脑右击属性,高级系统设置,高级,环境变量设置 新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变量值:C:\Program F ...