小编给大家分享一下Vue+Webpack+Vue-loader的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创新互联服务项目包括丹寨网站建设、丹寨网站制作、丹寨网页制作以及丹寨网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,丹寨网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到丹寨省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
使用预处理器
在 Webpack 中,所有的预处理器需要和一个相应的加载器一同使用。vue-loader 允许你用其它的 Webpack 加载器去处理 Vue 组件一部分代码。它会根据 lang 属性自动用适当的加载器去处理。
CSS
例如,我们编译用 SASS 编译 <style> 标签:
npm install sass-loader node-sass --save-dev
<style lang="sass"> /* 这里写一些 sass 代码 */ </style>
在引擎内,首先,<style> 标签内的内容会被 sass-loader 编译,然后再被进一步处理。
JavaScript
默认情况下,Vue 组件内的所有 JavaScript 会被 babel-loader 处理。当然,你也可以更改:
npm install coffee-loader --save-dev
<script lang="coffee"> # 这里写一些 coffeescript! </script>
Templates
处理模板的过程有点不同,因为大多 Webpack 模板加载器(比如 jade-loader )会返回一个模板处理函数,而不是被编译过的 HTML 字符串。我们只要安装 jade ,而不是 jade-loader :
npm install jade --save-dev
<template lang="jade"> div h2 Hello world! </template>
重要提示:如果你使用 vue-loader@<8.2.0
, 你也需要安装 template-html-loader.
内联加载请求
在 lang 属性上,你能使用 Webpack loader requests :
<style lang="sass?outputStyle=expanded"> /* use sass here with expanded output */ </style>
但是,注意这样只适用特定的 Webpack,并不兼容 Browserify 和 vueify。 如果你想让你的 Vue 组件发布成一个第三方组件的话,避免这样使用
URL资源处理
默认情况,vue-loader 是自动用 css-loader 和 Vue 组件编译器来处理样式和模板文件的。在处理过程中,所有的资源 URL 比如<img src="...">
, background: url(...)
和 CSS @import 都是被当做依赖的模块来处理。
例如,url(./image.png)
被转译成 require('./image.png')
。
<img src="../image.png">
如上会被再转译成:
createElement('img', { attrs: { src: require('../image.png') }})
因为 .png 并不是个 JavaScript 文件,你需要配置 Webpack 使用 file-loader 或者 url-loader 处理它们。项目脚手架工具 vue-cli 也能帮你配置这些。
这样做的好处是:
file-loader 允许你指定在哪里复制和存放静态资源文件 ,以及用版本哈希值命名从而更好利用缓存。 这意味着,可以把图片放到 *.vue 文件旁边,可使用相对路径,而不需要担心发布时候的 URL。使用适当的配置,Webpack 在打包输出的时候,会自动把文件路径转为正确的 URL。
url-loader 允许你内联 base-64 数据格式的URL资源,如果小于设定的阈值。这样可以减少 HTTP 请求小文件的数量。如果文件大于这个阈值。会自动it automatically falls back to file-loader.
加载器高级配置
若你想自定义载器的配置,不要 vue-loader 来推断。 或你只想覆盖加载器内置的配置。 那就这样做,在你 Webpack 配置文件里,添加一个 vue 块,并指定 loaders 选项:
Webpack 1.x Example:
// webpack.config.js module.exports = { // other options... module: { loaders: [ { test: /\.vue$/, loader: 'vue' } ] }, // vue-loader 配置 vue: { // ... 其他 vue 选项 loaders: { // 用 coffee-loader 加载所有没有 "lang" 属性的 <script> js: 'coffee', // 直接把 <template> 作为 HTML 字符串来加载,不需先用 vue-html-loader 处理。 html: 'raw' } } }
Webpack 2.x (^2.1.0-beta.25):
module.exports = { // 其他选项... module: { // module.rules 是和版本1.x中的 module.loaders 是相同的 rules: [ { test: /\.vue$/, loader: 'vue', // vue-loader 选项在这里配置 options: { loaders: { // ... } } } ] } }
这里是个实际的加载器配置高级用法的实例 提取组件内的 CSS 到单独文件。
提取CSS到单独文件
如下是提取所有程序的 Vue 组件中的 CSS 到一个单独的 CSS 文件的配置:
Webpack 1.x
npm install extract-text-webpack-plugin --save-dev
// webpack.config.js var ExtractTextPlugin = require("extract-text-webpack-plugin") module.exports = { // other options... module: { loaders: [ { test: /\.vue$/, loader: 'vue' }, ] }, vue: { loaders: { css: ExtractTextPlugin.extract("css"), // 你也能包含 <style lang="less"> 或其他语言 less: ExtractTextPlugin.extract("css!less") } }, plugins: [ new ExtractTextPlugin("style.css") ] }
Webpack 2.x (^2.1.0-beta.25)
npm install extract-text-webpack-plugin@2.x --save-dev
// webpack.config.js var ExtractTextPlugin = require("extract-text-webpack-plugin") module.exports = { // 其他选项... module: { rules: [ { test: /\.vue$/, loader: 'vue', options: { loaders: { css: ExtractTextPlugin.extract({ loader: 'css-loader', fallbackLoader: 'vue-style-loader' // <- this is a dep of vue-loader, so no need to explicitly install if using npm3 }) } } } ] }, plugins: [ new ExtractTextPlugin("style.css") ] }
以上是“Vue+Webpack+Vue-loader的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
分享名称:Vue+Webpack+Vue-loader的示例分析
网站URL:https://www.cdcxhl.com/article36/ipsdpg.html
成都网站建设公司_创新互联,为您提供关键词优化、手机网站建设、响应式网站、虚拟主机、微信小程序、App设计
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联