热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

webpack+sass+vue入门教程(三)

十一、安装sass文件转换为css需要的相关依赖包npminstall--save-devsass-loaderstyle-loadercss-loaderloader的作用是辅助w

十一、安装sass文件转换为css需要的相关依赖包
npm install --save-dev sass-loader style-loader css-loader

loader的作用是辅助webpack将符合条件的源文件转换为对应的目标格式文件。比如index.scss转换成index.css
安装成功后,package.json文件变化如下:


接着,安装extract-text-webpack-plugin,让webpack可以输出css格式的文件

npm install --save-dev extract-text-webpack-plugin


安装成功后,提示需要node-sass做配合,所以下一步是安装node-sass

npm install --save-dev node-sass

安装node-sass会比较久,需要耐心等待
全部搞定后,package.json文件变化如下:

十二、将app/css/index.css文件改为sass编译输出

在origin文件夹下,新增css.js文件,用于指定读取origin/css/index.scss文件

css.js文件内容如下:

require('./css/index.scss');

origin/css/index.scss文件内容如下

@charset "utf-8";
$colorRed : red;
$fontSize : 14px;
.demo{color:$colorRed;font-size:$fontSize;}

更新webpack配置文件webpack.config.js

var BrowserSyncPlugin = require('browser-sync-webpack-plugin');
var ExtractPlugin = require('extract-text-webpack-plugin');
module.exports = {
  // 配置入口
  entry: {
      '/js/index':__dirname +'/origin/origin.js',
      '/css/index':__dirname +'/origin/css.js'
  },
  // 编译后的文件路径
  output: {
      
    path: __dirname +'/app', // 文件路径
    filename: '[name].js' // 文件名称
  },
  module: {
    // 编译规则
    loaders: [
        // 配置sass编译规则
        {
            test:/\.scss$/,
            loader:ExtractPlugin.extract('style-loader', 'css-loader!sass-loader')
          }
    ]
  },
  // 辅助的插件
  plugins:[
    new BrowserSyncPlugin({
      host:'localhost', // 实时监听,webpack -w 可以实时更新硬盘中的文件js,css
      port:8080,
      file:'',
      server:{
        baseDir:'./app'
      }
    }),
    new ExtractPlugin('[name].css')
  ]
}

然后,启动webpack -w

编译成功,再实时修改字体颜色为green

十三、加入vue

1.安装vue,vue选择安装版本1.0.0

npm install --save-dev vue@1.0.0

2.安装babel的相关依赖包,可以编译最新标准的Javascript。比如es6,es7。

npm install --save-dev babel-core babel-loader  babel-runtime babel-plugin-transform-runtime babel-preset-es2015 babel-preset-stage-0

3.更新webpack配置文件webpack.config.js

var BrowserSyncPlugin = require('browser-sync-webpack-plugin');
var ExtractPlugin = require('extract-text-webpack-plugin');
module.exports = {
  // 配置入口
  entry: {
      '/js/index':__dirname +'/origin/origin.js',
      '/css/index':__dirname +'/origin/css.js'
  },
  // 编译后的文件路径
  output: {
      
    path: __dirname +'/app', // 文件路径
    filename: '[name].js' // 文件名称
  },
  module: {
    // 编译规则
    loaders: [
        // 配置sass编译规则
        {
            test:/\.scss$/,
            loader:ExtractPlugin.extract('style-loader', 'css-loader!sass-loader')
        },
        {
            // 让webpack去验证文件是否是.js结尾将其转换
            test: /\.js$/,
            // 通过babel转换
            loader: 'babel',
            // 不用转换的node_modules文件夹
            exclude: /node_modules/,
            query: {
               'presets': ['es2015', 'stage-0'],
               'plugins': ['transform-runtime']
            }
        },
    ]
  },
  // 辅助的插件
  plugins:[
    new BrowserSyncPlugin({
      host:'localhost', // 实时监听,webpack -w 可以实时更新硬盘中的文件js,css
      port:8080,
      file:'',
      server:{
        baseDir:'./app'
      }
    }),
    new ExtractPlugin('[name].css')
  ]
}

修改origin/origin.js内容如下:

import Vue from 'vue'

new Vue({
  el: '#print',
  data: {
      message: "hello vue!"
  }
})

接着修改app/index.html内容如下:










    

hello world!

{{message}}

启动webpack -w,查看浏览器结果

到此,成功整合webpack+sass+vue!

原文入口:http://www.jianshu.com/p/4f280974f664

系列文章:
webpack+sass+vue 入门教程(一)
webpack+sass+vue 入门教程(二)


推荐阅读
  • loader资源模块加载器webpack资源模块加载webpack内部(内部loader)默认只会处理javascript文件,也就是说它会把打包过程中所有遇到的 ... [详细]
  • 编译sass,遇到报错error style.scss (Line 3: Invalid GBK character
    今天学习sass,写了一行中文注释,结果却遇到了报错:1cmd.exeDCcallC:Ruby23-x64binscss.bat--no-cache--update ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • 前言:原本纠结于Web模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中ev ... [详细]
  • ReactJSUIAnt设计空组件原文:https://w ... [详细]
  • 我正在docker本地运行coo ... [详细]
  • 原因:增加配置:webpack.base.conf.jsloaders:{scss:[vue-style-loader,css,sass].join(! ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • PHPMailer邮件类邮件发送功能的使用教学及注意事项
    本文介绍了使用国外开源码PHPMailer邮件类实现邮件发送功能的简单教学,同时提供了一些注意事项。文章涵盖了字符集设置、发送HTML格式邮件、群发邮件以及避免类的重定义等方面的内容。此外,还提供了一些与PHP相关的资源和服务,如传奇手游游戏源码下载、vscode字体调整、数据恢复、Ubuntu实验环境搭建、北京爬虫市场、进阶PHP和SEO人员需注意的内容。 ... [详细]
  • 本文介绍了解决IE678伪类不兼容问题的方法,包括少用CSS3和HTML5独有的属性,使用CSS hacker,使用last-child清除浮动、批量添加标签、去掉list item最后一个的border-right等技巧。同时还介绍了使用after清除浮动时加上IE独有属性zoom:1的处理方法。另外,本文还提到可以使用jQuery代替批量添加标签的功能,以及使用负边距和CSS2选择器element+element去掉list item最后一个的border-right的方法。 ... [详细]
  • 前段时间做一个项目,需求是对每个视频添加预览图,这个问题最终选择方案是:用canvas.toDataYRL();来做转换获取视频的一个截图,添加到页面中,达到自动添加预览图的目的。 ... [详细]
  • npmrunbuild后dist文件夹下面直接浏览器打开index.html,css和js的路径都不正确。放到跟目录下就正常了,iis上同样只能在根目录下。我项目的目录如下: ... [详细]
  • Node.js详细安装及环境配置
    1、下载安装根据自己电脑系统及位数选择,我这里选择windows64位.msi格式安装包(官网:https:odejs.orgzh-cndownload).msi和.zip格式区别 ... [详细]
author-avatar
panda光光_897
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有