webpack -> vue Component 从入门到放弃(二)

Foreword

上一篇简单介绍了webpack的打包功能,应该说是比较无意义的打包,对于开发人员来说,这种效率是非常低的。所以我们来点升华。

First Step

我们给第一篇例子中加个样式文件我们 style.css

body { background: yellow; }

然后修改 entry.js

require("!style-loader!css-loader!./style.css") // 载入 style.css
document.getElementById(‘app‘).innerHTML="it works";
require("./content.js");

ps: 这里就体现loader的用处了,我们先回顾一下index.html的代码

<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <div id="app"></div>
         <script src="bundle.js"></script>
    </body>
</html>

在这里我们只引入webpack打包生成后的bundle.js,所有的js css 等都是通过这个文件被引入页面的,而不像平常我们引入 js 用 <script>标签 引入 css 用 link/<style>便签引入.

原理就是 首页 将 style.css 也看成是一个模块,然后用 css-loader 来读取它,再用 style-loader 把它插入到页面中。

所以我们还要再package.json安装 css-loader style-loader 依赖

$ cnpm install css-loader --save-dev
$ cnpm install style-loader --save-dev

安装成功后成功自动加入依赖信息

让我们跑一下

$ webpack entry.js bundle.js 

刷新index.html后就能看到body被改为 yellow 了

如果每次 require CSS 文件的时候都要写 loader 前缀,是一件很繁琐的事情。我们可以根据模块类型(扩展名)来自动绑定需要的 loader。

将 entry.js 中的 require("!style-loader!css-loader!./style.css") 修改为 require("./style.css") ,(ps:我用的是webpack 2.2.1版本的,在这里它已经不允许在使用loaders 时去省略 -loader 这个后缀了,所以打包时报错,请检查你是否写成了require("!style!css!./style.css") ) 然后执行:

//为了看效果,我们可以在style.css里面把yellow换成其他颜色
$ webpack entry.js bundle.js --module-bind ‘css=style-loader!css-loader‘

# 有些环境下可能需要使用双引号 而且需要在感叹好前加上斜杠进行转译
$ webpack entry.js bundle.js --module-bind "css=style-loader!css-loader"

显然,这两种使用 loader 的方式,效果是一样的。

Second Step

要是每次都需要打一堆字符串去打包,简直无法忍受,所以我们需要简化,简化。。。。

webpack.config

Webpack 在执行的时候,除了在命令行传入参数,还可以通过指定的配置文件来执行。默认情况下,会搜索当前目录的 webpack.config.js 文件,这个文件是一个 node.js 模块,返回一个 json 格式的配置信息对象,或者通过 --config 选项来指定配置文件。

首先我们还是要先安装webpack依赖,之前的demo都是在全局的webpack下操作的,现在我们要在项目目录下安装webpack

$ cnpm install webpack --save-dev

成功在package.json加入依赖

然后创建一个配置文件 webpack.config.js:

#此文件不能写注释,我这里图方便,就以注释的方式进行注解了
var webpack = require(‘webpack‘); // 引入webpack 模块
module.exports = { //commonJs模块规则写法
  entry: ‘./entry.js‘, //入口文件,这里指的是根目录下的entry.js作为入口文件
  output: {//输出接口
    path: __dirname,//项目输出的路径(__dirname为绝对路径)
    filename: ‘bundle.js‘//文件以bundle.js输出
  },

//定义了对模块的处理逻辑,这里可以用 loaders 定义了一系列的加载器,
以及一些正则。当需要加载的文件匹配test的正则时,
就会调用后面的 loader 对文件进行处理,这正是 webpack 强大的原因。
  module: {
    loaders: [
      {test: /\.css$/, loader: ‘style-loader!css-loader‘}
    ]
  }
}

详细的其他配置信息可以去官网进行查看

同时简化 entry.js 中的 style.css 加载方式:

require(‘./style.css‘)

最后运行一下

$ webpack

可以看到 webpack 通过配置文件执行的结果和上一章节通过命令行 webpack entry.js bundle.js --module-bind ‘css=style-loader!css-loader‘ 执行的结果是一样的。

这篇就这样吧,感觉进度有点慢

webpack -> vue Component 从入门到放弃(四)
webpack -> vue Component 从入门到放弃(一)
webpack -> vue Component 从入门到放弃(三)
github源代码

原文地址:https://www.cnblogs.com/jlfw/p/12541988.html

时间: 2024-10-11 01:28:51

webpack -> vue Component 从入门到放弃(二)的相关文章

学习 Vue ,从入门到放弃

最近项目刚完成,手上工作稍微轻松些,准备储备下技术,为未来挑战做好准备. 之前项目用的较多的是angulajs,不过版本较老,还停留在1.5x系,虽然结合了webpack,es2015等前沿技术,但理解并不深入.也做个两个react的项目和一个react-native小东西,都是不懂现查资料,没有系统学习过.三大前端框架就没接触过Vue了,所以打算拿它从小白学起,也顺便写个完整学习心得. 以前学习angularjs是在菜鸟教程学的,看了2天直接上了项目,第一个项目用的还是原始方式,html文件中

robotium从入门到放弃 二 第一个实例

1.导入被测试的源码 我们先下载加你计算器源码,下载地址: https://robotium.googlecode.com/files/AndroidCalculator.zip 如果地址被墙无法现在下面网盘地址也可以下载: 链接: http://pan.baidu.com/s/1c2e8McC 密码: vsj8   打开eclipse,点击File-Import 选择Existing Projects into Workspace,点击Next   选择Select archive file,

Vue.js的从入门到放弃进击录(二)

哇塞,昨晚更新的篇(一)这么多阅读量,看来入坑的人越来越多啦~熬了一个礼拜夜,今天终于生病惹~国庆要肥家咯·所以把篇(二)也更完.希望各位入坑的小伙伴能少跳几个坑呗.如果有什么不对的地方也欢迎讨论指正.毕竟这些博客我是留着以后翻身成大佬以后留给我的小弟们用的,哈哈哈~ =======================================================比哈特~=================================================== 惯例惯例

从入门到放弃,.net构建博客系统(二):依赖注入

文章目录:<从入门到放弃,.net构建博客系统> 从入门到放弃,.net构建博客系统(一):系统构建 从入门到放弃,.net构建博客系统(二):依赖注入 上一篇中有讲到项目启动时会进行ioc的依赖注入,但具体是怎么注入的呢?我们先一步步往下走 一.注册autofac配置 首先bootstraper会进行初始化,接着将当前mvc控制器工厂改为AutofacControllerFactory. 1 public class AutofacConfig 2 { 3 /// <summary&g

OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据

OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据 我们这片博文就来聊聊这个反响很不错的OkHttp了,标题是我恶搞的,本篇将着重详细的分析,探索OkHttp这个框架的使用和封装 一.追其原理 Android系统提供了两种HTTP通信类 HttpURLConnection HttpClient Google推荐使用HttpURLConnection,这个没必要多说,事实上,我这篇写的应该算是比较晚了,很多优秀的博文都已经提出了这些观

Vue.js的从入门到放弃进击录(一)

感谢我们项目组给机会,让我学了Vue.js,打开新世界大门...哈哈哈,也没有那么夸张,不过学下来确实觉得入门还是蛮容易的.我大概前前后后学了有一个月的样子,一开始只是比较急着可以写东西出来,后来因为分配到九月份的分享,项目组也买了vue相关的书籍,所以又进行了比较深入的一个学习. ====================================================嘀 哩哩 哩~=================================================

Webpack 4.X 从入门到精通 - plugin(二)

通过上一篇文章,我们明白了webpack的两个配置参数入口与出口,webpack会找到入口文件的地址,进去后一顿蹂躏,再通过你给的输出地址就把编译后的文件给你了.这篇文章接着去丰富webpack.config.js的内容,说一个参数叫plugins plugins plugins里面放的是插件,在webpack里有各式各样的插件能够帮你完成任何构建的事情.只有你想不到的,没有它做不到的.并且全世界的小伙伴们都在给webpack贡献开源的插件,所以插件的种类是非常丰富的. 插件能做什么 插件的作用

python从入门到放弃(二)

编码类型 ASCII码:主要用来显示英文和其他西欧语言,用8位来表示,也就是一个字节,最多只能显示256个符号 UNICODE:也叫万国码,为了解决传统的字符编码方案的局限而产生的,它为每种语言的每个字符都设定了二进制编码,最少用16位来表示,也就是两个字节 UTF-8:是unicode的压缩版,可以显示中文,占用的内存少 python2.x版本使用的是ascii码 python3.x版本使用的是utf-8 python2中无法显示中文,想要显示中文的必须在代码首部加一条代码: # -*- co

小白学 Python 爬虫(28):自动化测试框架 Selenium 从入门到放弃(下)

人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基