最后的晚饭

读书目录

周江从暗黑的树丛里钻了出来,身上沾满血迹。他穿越另一条黑暗的羊肠小道,回到车上,把手套和马夹全体脱下来放进一个粉色袋子,光着膀子点起一支烟,不一会儿那密闭的长空就被层层的云烟笼罩起来。

一声闷雷,闪电越过犹如白昼,洪雨已至。他微睁着双眼,看着车窗上渐渐大颗的雨点,嘴角勾起一丝笑意。

文章有点长,总共 1800 字,阅读须求 18
分钟。哈哈,没耐心的一贯戳我到高潮部分

1.

不错的前端开发流程

在说创设工具以前得先说说吾期望的前端开发流程是如何的?

  • 写作业逻辑代码(例如 es6,scss,pug 等)
  • 拍卖成浏览器认识的(js,css,html)
  • 浏览器自动刷新看到作用

前端开发就是在时时刻刻的 123..123..123….
循环往复中开展的,上边的后两步(也就是 2 和 3)应该是 自动化
的,前端开发者理应只需关心第 1 步——写作业逻辑代码。

自动化的事体应该交由打造工具来做,时下流行的前端创设工具有 gulp 和
webpack(有人说 webpack
不算是营造工具,我觉得那没怎么好争的。横看成岭侧成峰,我觉着从此时此刻
webpack 所能做的事务来看,说它是创设工具丝毫不为过)。本文不会对
gulp
webpack
的概念和情节做深入剖析,而是希望从宏观的角度商讨他们的优势短缺和适用场景,从而说清长时间弥漫在前者圈二者之间扑朔迷离的关联。

什么是营造工具
营造工具是一段机关根据源代码生成可使用文件的主次,创设进程包括打包、编译、压缩、测试等一体须求对源代码举办的连带处理。创设工具的目的是促成创设进度的自动化,使用它可以让我们防止机械重复的麻烦(那怕是程序员最无法经得住的了),从而解放我们的双手。

解放了双手干什么
哇槽,爱干什么干什么。

在周江生意风生水起的那几年,他在外界的养了3个朋友,纵然醉酒时把对象的名字叫错,她们依然会把他伺候得舒舒服服。他乐意拿钱沟通年轻酮体带给他的快感,大家各取所需,双方对游戏规则心知肚明,何人还会那多少个细节?现在,他的铺面境遇麻烦濒临破产,还欠了一屁股外债,那仨人也如出一辙的无影无踪了。

Gulp 为何物

先来听听 Ta 的官网是怎么说:

Gulp 致力于 自动化和优化 你的工作流,它是一个自动化你付出工作中
惨痛又耗时职责 的工具包。

想一想大家普通的开发工作中伤心又耗时任务有啥呢?

  • 用 es6,typescript 编写的台本文件要求编译成浏览器认识的 javascript
  • 用 scss,less 编写的样式文件须要编译成浏览器认识的 css
  • 检查代码是还是不是符合书写规范,跑单元测试和购并测试
  • 付出环境一旦有 sourcemaps
    的话调试起来就有益多了,修改完代码浏览器能自动刷新立时看到功用就更好了
  • 生育环境安顿代码须要裁减合并静态文件,添加文书指纹控制缓存
  • blabla…更加多的您协调想啊

Gulp 声称要帮大家落成
自动化,那她是怎么着协助我们完结自动化的呢?那就只好先提一嘴牛逼哄哄的
NodeJS语言,。

Node 背景小知识

Node 使前端 Jser 有了退出浏览器工作的力量,要搁往日的话我们写的 js
要么嵌到 html 页面里,然后用浏览器打开 html
页面才能运行js,要么就是在浏览器开发者工具的 Console
面板里编写运行代码片段。不言而喻没了浏览器那几个宿主,大家的 js 就 run
不起来。Node 那货突发奇想,把开发者工具的 Console 给抠下来了,从此 js
能够退出浏览器直接在 node 里运行。一定于 js
现在有了两个宿主环境,一个是浏览器,一个是 node
。当然了,Node
可不是开发者工具里的 Console,那只是打个比方。它是根据Chrome V8
引擎完结的一个 JavaScript 运行环境,功效实在看似 Console
面板,但提供了汪洋实用的 API,感兴趣的同校可前往
Node官网 详细询问,英文吃力的骚年
戳这里。Node 可以算是前端革命式的创新,随 node
一起公布的 node 包管理器 npm(node package manager)
也早已是全球最大的开源库生态系统。node/npm
那对组合一出,前端生态迎来了大发生,一时间为竭泽而渔各类题材的 node
包无独有偶,四处开花。gulp 就是急流勇进,一路过五关斩六将闯出来的一个小
node 包。

扯谈已毕,接下去就来看看 gulp
是或不是在装逼,他到底能不可能帮大家贯彻自动化。

作为一个 node 包,标准打开情势当然是:

npm i -g gulp

下一场呢,那里以编译 less 为例,首先安装编译 less 须求采取的 node 包:

npm i --save-dev gulp gulp-less

眼前已经全局安装过 gulp 了,怎么又本地安装了三遍
前面的 -g 是全局安装,是为了执行你所编纂的 gulp 职分,即 gulp
yourTask。而前边的 –save-dev 是地点安装,是为了大家编写任务时接纳 gulp
提供的 api,例如 gulp.src()gulp.task()gulp.dest()
等等。当然也是足以平昔使用全局安装的 gulp 的 api
的,可是分明不引进,因为这么提到到 gulp 版本控制的难题,而且使用全局
gulp 的 api
的话就会生出环境依赖(你要是条件已经全局安装了gulp,万一没装呢,程序不就出错了)。

随之在项目标根目录下新建一个 gulpfile.js 文件,这是 gulp
的默许配置文件。

gulpfile.js 必须放在项目根目录?
理所当然也可放在其余目录,但那样的话就得在启动 gulp 职责时手动指定 gulp
配置文件 gulp yourTask –gulpfile yourGulpfilePath,可能还索要全局安装
gulp-cli,所以唯有有非凡须要,否则就放在项目根目录就行了,这样最简易。

配置文件的名字务必是 gulpfile.js 吗?
不区分轻重缓急写,取成 gULPFile.js 的话 gulp 也能认识,只要 toLowerCase
之后是 gulpfile 就行了,即使取其余名字那您就又得使用 –gulpfile
选项去指定了。

最近工程目录结构早已成了下边的金科玉律:

语言 1

营造前 gulp 工程目录结构

接下去就是在 gulpfile.js 里编写 gulp task(gulp
把为每个痛心又耗时职分编写的拍卖措施称为一个 task):

const gulp = require('gulp');
const less = require('gulp-less');

gulp.task('build:less', function(){
    return gulp.src('./src/*.less')
        .pipe(less())
        .pipe(gulp.dest('./dist'));
});

说到底就是开拓一个巅峰,在巅峰里运行 gulp
build:less。好了,编译后的公文已经被输出到了 dist 目录:

语言 2

创设后 gulp 工程目录结构

从那之后你曾经算是一个 gulp 砖家了,那基本上就是 gulp
的全体内容。怎么着,是否够简单,够丝滑。那也是 gulp
的凸起特征——易于学习,易于使用,五分钟成砖家。若是想要执行解决其余忧伤又耗时的任务,只需下载安装对应的
gulp 插件包,然后逐一类推写一个 gulp.task 出来就行了。

这么些源代码具体是什么被处理的
这一般不须求关心,因为 gulp
插件包已为你搞好了,并且封装的更加可观,你只必要报告 gulp 你要什么,gulp
及其插件会帮你打点好一切。那就好比你把一份电子文档传进打印机,告诉它自己要一份
A4 纸打印,呲呲呲~,打印机就吐出来一张 A4
纸,下边是你的文档内容。源代码就是您的电子文档,gulp
插件就是打印机,生成的可用文件就是你手里的那张 A4
纸,你不要关注打印机内部是怎么着工作的,因为它包裹的很好,或者您能够把打印机拆了一研究竟也行。

Gulp 是基于流的?
流(Stream)不是 gulp 创建的概念,而是从 unix 时代就从头利用的 I/O
机制,一贯到现行仍在大面积拔取。Node 封装了一个
stream
模块专门用来对流举办操作。gulp 所依据的流即是 Node 封装起来的
stream。上边 gulp.task() 代码里面的
pipe
方法并不是 gulp 提供的 api,而是 node 的 api,准确的说应该是 node 的
stream 模块提供的 api。具体是怎么落实的吗:gulp.src() 的重返值是 node
Stream 的一个实例,之后的 pipe 调用的骨子里是其一实例的 pipe 方法,而
pipe 方法的重回值如故是 node Stream 实例,以此落成前边的
.pipe().pipe().pipe() 那种串联写法。熟识 jQuery
的同桌应该很明亮那种技能。

“这群臭婊子!”周江将自己的火气发泄在小姐身上。

webpack 又是从哪冒出来的

gulp
就如健全的,对前端开发工作中每一项难受又耗时职责都能见招拆招,各样击破。然则前端发展进度之快当先想象,对页面质量和用户体验越来越追求极致,以至于
gulp 某些领域越发大型 SPA(单页应用)显得有点不够用了:

  • 单页应用的基本是模块化,ES6 之前 JavaScript
    语言本身直白是从未有过模块系统的,导致 速龙,CMD,UMD
    各样轮子模块化方案都蹦出来。对那种模块化乱象,gulp
    显得力不从心,gulp
    插件对这一块也从未什么样想法。但是也可以精晓,模块化解决方案可不是什么人都能
    hold 住的,须求考虑的标题太多了;
  • 对前方的 SPA 技术 gulp 处理起来显得有点力不从心,例如 Vue
    的单文件组件,gulp
    合作局地插件能够勉强处理,不过很差劲。其实说到底,依然模块化处理方面的欠缺;
  • 优化页面加载速度的一条首要法则就是缩减 http 请求。gulp
    只是对静态资源做流式处理,处理以后并未做有效的优化整合,也就是说
    gulp
    忽略了系统层面的处理,这一块还有很大的优化空间,尤其是移动端,那才真的是一寸光阴一寸金啊,哪怕是几百飞秒的优化所牵动的低收入(用户?流量?付费?)相对超过你的设想。别跟自家说
    gulp-concat,CSS
    Pepsi-Colas,那俩玩意儿小打小闹还行,遇上巨型应用根本拿不上台面。现在的页面动辄上百个繁缛资源(图片,样式表,脚本),也就是不少个
    http 请求,因此这么些优化要求如故至极火急的。关于为何减弱 http
    请求可以使得下落页面加载时间戳这里
  • blabla… 你自己想呢,主要就是大型单页应用方面有短板;

事势造英雄。webpack 一声吼,大马金刀地挖起了gulp 的墙角。

惯例,先看看webpack官网怎么吹牛逼介绍自己的:

Webpack 是当下最紧俏的前端资源模块化 管住和包裹
工具。它可以将过多满不在乎的模块按照看重和规则打包成符合生产条件计划的前端资源。仍能将按需加载的模块举办代码分割,等到实际需求的时候再异步加载。

是还是不是看完一脸懵逼,不明觉厉。其实翻译过来就是
“在自身眼里,什么都是模块”。webpack “万物皆模块” 的见识和 SPA
同盟起来几乎是郎才女貌,天作之合。那也是 webpack
短时间内名声大噪,直接撼动 gulp 地位的机要缘由。

webpack
的见解相比较前卫,它本身也牵动了诸多新的概念和情节,诸如加载器(loader)、器重图(Dependency
Graph)等等。和 gulp 两钟头成砖家的求学难度相比较,webpack
或许你切磋两日一如既往会晕头转向。

接下去差不多看一下 webpack 的重大办事章程。

webpack 和 gulp 一样也是一个小 node 包,打开格局自然是:

npm i -g webpack
npm i --save-dev webpack

和 gulp 一样,全局安装是为了履行 webpack 职责,本地安装是为了选拔webpack 提供的 api。

安装完 webpack 之后在档次根目录下新建一个 webpack.config.js,这是
webpack 的默许配置文件,同 gulp 的 gulpfile.js
的法力看似。webpack.config.js 同样是不区分轻重缓急写的,取成
webPACk.CONfig.js 的话 webpack
也能认识,但是取成其余名字或身处其余目录就要求利用 –config
选项去指定布署文件了。

最近工程目录结构如下:

语言 3

创设前webpack工程目录结构

接下去就是在 webpack.config.js 里配置要求的选项,注意了,webpack 与 gulp
的关键不相同就是利用形式 由编程式变成了配置式

const path = require('path');

module.exports = {
    entry: './src/index.js',        // 告诉 webpack 你要编译哪个文件
    output: {                       // 告诉 webpack 你要把编译后生成的文件放在哪
        filename: 'bundle.js',
        path: path.join(__dirname, 'dist')
    }
};

最后如故和 gulp 类似,就是在极端里运行
webpack(终端里一般会产出一大坨编译音信)。好了,现在 webpack
已经把编译好的公文输出到了 dist 目录:

语言 4

创设后webpack工程目录结构

见状这是还是不是早已一头雾水了,在您还没领悟暴发了怎么的时候 webpack
已经把工作干完了。那也是 webpack 和 gulp 作业格局的主要差距:Gulp
是搭了个案子,让 gulp
插件在地点唱戏,尽情表演,所有打造相关的现实性业务都交由 gulp 插件去做。而
Webpack 就牛逼了,webpack
先搭了个案子,然后自己在上头唱嗨了,仔细一听,他在地方唱的是《我们不一致等》,当然了她也是让
webpack 插件在地点唱戏的。

也就是说 webpack
把司空见惯效应都封装进了上下一心肉体内部,使得自己强马大庆时臃肿。现在您可以在
./src/index.js 文件里直接写 ES6 代码,因为 webpack 把编译 ES6
的劳作已经封装到温馨的兑现里了,使得 webpack 看起来原生协助 ES6
而不要求信赖第三方插件,其实她其中也是用了第三方插件的,所以您绝不再越发去下一个
babel 之类的插件去转译
ES6。这样封装的裨益是采取起来很有利,糟糕的地点就是使用者完全不晓得暴发了哪些,创设完了还一脸懵逼。

地点仅是 webpack 使用的最最最简易示例,几乎连 “hello world”
都算不上。具体如何打包种种资源(typescript,样式表,图片,字体等等)可前往
webpack官网 长远学习,想看普通话的同校使劲
戳这里

webpack “一切皆模块” 的特色完美解决了下面 gulp 揭穿的多少个短板,连
webpack 官网也说自己是因为阅览现存的模块打包器都不太适合大型 SPA
应用,于是决定制作一个契合大型 SPA 应用的模块打包器,也就是说 webpack
其实就是为巨型 SPA
而生的

webpack 怎么落实像 gulp 一样对多量源文件举行流式处理
住户 webpack 本来就没打算做那事。webpack 不是以替代 gulp
为目的的,而是为了给大型 SPA
提供更好的构建方案。对大气源文件举行流式处理是 gulp 擅长的事,webpack
不想抢,也没要求抢。即便抢,也只是是再造一个不良的 gulp 出来而已。

既然 webpack 模块化这么强,这将来模块化就全用 webpack 好了
webpack
模块化是强,不过她胖啊,不是所有人都抱得动,紧借使他为了提供越多的成效封装进了太多东西,所以拔取上依然须要因地制宜。假使单纯只是包装
js(多页应用往往是这种要求),完全可以利用 rollup,browserify
那种小而美的达成,因为他们只做一件事——打包js。而只要急需将图片,样式,字体等具有静态资源总体包装,webpack
毫无疑问是首选。这也是怎么越多的流行库和框架开头从 webpack
转向使用 rollup 举行打包,因为她俩只需求打包 js,webpack
好多精锐作用根本用不到。连 rollup 官网也坦言假若你在打造一个库,rollup
绝对是首选,但倘诺是营造一个施用,那么请选 webpack。

2.

结论

自家看许两个人说 gulp 和 webpack
不是一类东西,我不那样认为,即便说两者的视角确实是不同的,gulp
走的是流式处理途径,webpack
走的是模块处理途径,不过两岸所要完结的对象却是一样的,那就是力促前端领域的自动化和工程化管理。webpack
发展到现在,已经卓殊强劲了,强大到在打造方面 gulp 能做的事 webpack
基本上都可以胜任,gulp 做不了的 webpack
也能搞。同样的那几个开发工作中痛楚又耗时的职务,gulp 和 webpack
都能化解,只是解决思路有天壤之别。

下表是从各样角度对 gulp 和 webpack 做的相比较:

Gulp Webpack
定位 基于流的自动化构建工具 一个万能模块打包器
目标 自动化和优化开发工作流,为通用 website 开发而生 通用模块打包加载器,为移动端大型 SPA 应用而生
学习难度 易于学习,易于使用,api总共只有5个方法 有大量新的概念和api,不过好在有详尽的官方文档
适用场景 基于流的作业方式适合多页面应用开发 一切皆模块的特点适合单页面应用开发
作业方式 对输入(gulp.src)的 js,ts,scss,less 等源文件依次执行打包(bundle)、编译(compile)、压缩、重命名等处理后输出(gulp.dest)到指定目录中去,为了构建而打包 对入口文件(entry)递归解析生成依赖关系图,然后将所有依赖打包在一起,在打包之前会将所有依赖转译成可打包的 js 模块,为了打包而构建
使用方式 常规 js 开发,编写一系列构建任务(task)。 编辑各种 JSON 配置项
优点 适合多页面开发,易于学习,易于使用,接口优雅。 可以打包一切资源,适配各种模块系统
缺点 在单页面应用方面输出乏力,而且对流行的单页技术有些难以处理(比如 Vue 单文件组件,使用 gulp 处理就会很困难,而 webpack 一个 loader 就能轻松搞定) 不适合多页应用开发,灵活度高但同时配置很繁琐复杂。“打包一切” 这个优点对于 HTTP/1.1 尤其重要,因为所有资源打包在一起能明显减少浏览器访问页面时的资源请求数量,从而减少应用程序必须等待的时间。但这个优点可能会随着 HTTP/2 的流行而变得不那么突出,因为 HTTP/2 的多路复用可以有效解决客户端并行请求时的瓶颈问题。
结论 浏览器多页应用(MPA)首选方案 浏览器单页应用(SPA)首选方案

gulp 为啥不吸取百家之长,把 webpack 的事物集成进来,反正都是开源的
腾讯那么牛逼,你说他怎么不把阿里巴巴(Alibaba)合并进来。集成应该是没可能,因为
gulp 和 webpack
的一直差别。所以,没有放之天下而皆准的缓解方案,唯有切实难题具体分析选拔适合的化解方案才能正确地缓解难题。gulp
和 webpack 只是大家解决难点的工具,不要被工具束缚了动作无法发展。

扯了那样多,到底何人会被拍死在沙滩上
可以看出来,那四个工具其实各有优缺,都有用武之地。合理地配合使用,取长补短,才能公布最大的威力,所以那俩基友并不是排斥的,而是增补的,什么人也不会被拍死在沙滩上。

打发走小姐后,周江眯着眼来到窗户边有所思,手中的香烟安静地燃到了最后。他相对不允许自己苦心经营的硕果最后落得一场空。

就在这时候,他回想了她爱妻,他险些忘了他——那些独自住在潜山市的半边天。

八年前他在山乡娶了这一个妇女,父母说的媒。不过周江是有抱负的,他领悟自己非池中物。起先到来城里打工,周江有头脑,爱拼敢闯,短短三年时光就开起了自己的营业所,这灯米酒绿的都会生活更让她如虎得翼。

她把她的婆姨配置在太湖县的一栋破旧的楼面里,周围至极荒凉,距离如今的市中央也得两小时车程。楼房建造的年份有些遥远,外面的墙皮已脱落了大半,显示出暗黄丑陋的墙体,居住在此大多都是孤寡老人。

婚后第四年,周江提议离婚。

周江爱妻是一个典型的农村妇女,性格内向寡言且没有知识。他得趁创业初期就把那包袱扬弃,免得未来还找她分一杯羹。

家家老实巴交的爹妈极力反对:离了婚周遭人闲言闲语的,你令人自此怎么在村里呆?咱做不出来那种事!

周江碰了壁,对那女子的头痛又加剧了,心里早已把她打入了冷宫。

3.

关了灯的房间里,周江靠着窗边又燃起一根烟,脑袋里蹦出的想法让她狡黠的笑了笑,黑暗中他的口角不自觉地扯动着,让人望着些许恐慌。

一回,由于事情上的内需,他帮家里所有人都买了有限襄助,也包括被她忘记多时的老婆。只要被担保人出现意外身亡事故,就能得到一笔不菲的填补费用。

目前对周江来说,钱是头等大事,那事关到她能依然不能东山再起。

只要想个方法创立意外就行了。当然,那些意外的靶子是他老伴。

她领悟某些小伎俩就足以让那土了吧唧的村村落落女性上钩。

回忆很久往日,每当她有时候良心发现想到那位法律意义上的伴侣,就会善心大发回去看望她。他只会开车到楼下示意她下楼塞给她几张百元大钞,然后离开。

有一遍,他下意识中瞄到后视镜里爱妻低着的头,还有剧烈耸动的肩膀。

理所当然,那都是过去旧事了。现在的他现已想不起那女士的人脸究竟长什么样体统了。

4.

野外的夜幕比市区要冷一点,周江靠在车的前盖上,紧了紧身上的毛衣,撕开了一包烟。

前些天是情人节,周江告诉内人这特殊生活会回到吃饭,电话的那头是她妻子掩饰不住的戏谑。

相距老式居民楼还有一公里,他把车停了下去,让爱妻前来谋面。

十分钟后,女生又是气短吁吁跑到附近,她低着头轻轻地唤了一声“江子”。

周江透过手中的混合雾眯着眼睛打量着面前的那几个女子——长长的头发被卫生地盘在了脑后,身上套着一件样式过时宽松的布衣裙,还有一层不变的软布鞋。呵,那几个永远学不会穿高跟鞋的半边天。

她宛如比结婚时看起来瘦了一些,或者胖一点。算了,他也忘记了。

自从当初闹离婚未果,回来他毫不留情地对她使用了过多恶毒的言语之后,那女人就养成了一见着她就让步的习惯,至今未改。

“你恨我吧?”周江低着喉咙问道。

“没有…”女子抿了抿唇,把头抬了起来。目光在和周江碰触的那瞬间又惊慌地倒退了回去。

一时间的对视让周江有点恍惚,结婚八年了,那女生的眼中的强光却一如当场,变的就像唯有团结。

呆了几秒,回过神来的周江深深地咂了一口烟,把烟蒂扔在地上,用脚尖狠狠地碾了瞬间。

她开拓侧门示意爱妻上车,那女生低着头腼腆地走过他身边,嘴角藏着微笑。

就在她弯腰进入车子的那眨眼间间,周江从骨子里狠狠地把她按倒在座椅上,用事先沾满迷药的手套牢牢地捂住了半边天的口鼻。

女孩子惊恐无助地呜呜哼着,挣扎却更是无力。周江看到他眼里的强光逐渐变暗,最后毁灭。

5.

那片肥西县尚未支付价值,附近的林海肆意越长越茂密。周江前二日已经在附近踩好点了,他深谙地把车停放在一条暗道里,扛着爱人走过一条乌黑曲折的小路,四周都是杂乱无章的小树,周江又往前走了一段路,他把爱人放了下去。

那条路他自己踩点时走了几十遍,借着依稀的月光他找到了一块大石头。望着地方的影子,他高高地举起了石块,能够观望他的手有点颤抖,鼻尖上也沁出微微的汗液,远远看去像一尊静止的雕刻。

地上的人轻轻呻吟了一声,费力地蠕动着身体,就像是迷药快要失效了。周江扭曲着面孔,低吼了一声,拼尽全力将手上的石头砸了下来,一下、两下、三下……直到她备感液体溅了她一身,他停了下来。

6.

绳趋尺步原路再次回到,上车,点烟。瞅着窗外的倾盆小雨,周江知道这一路上的印痕都会被冲刷干净。

老伴出轨,树林偷情的凭证早已经被捏造好,情夫因爱生恨错手杀人,剧情全体由她陈设好了。他和警察局市长此前私交不浅,像那种塞钱可以搞定的事务周江已经熟门熟路了。接下来只要依据陈设假报警,定案后,等着有限支撑公司索赔就行了。有了如此一大笔钱,凭着自己的手腕,让商家重整旗鼓也不是不容许。

光着膀子的周江打了一个冷战,没开空调的车上逐渐弥漫着阴冷的气息。他回想以前放在爱妻家的几件旧衣裳,应该可以拿来沟通。

那栋楼住着都是些孤寡老人,眼花鼻咽炎,加上外围电闪雷鸣,他一点都不担心会磕磕碰碰什么些人。

凭着模糊的回想他找到内人的家,却发现自己根本未曾钥匙。

不明中她想起之前老婆怕她中午归家没带钥匙,都会在门前电箱最里面放上一串钥匙。他下意识地呼吁进去电箱一摸,冰凉凉的钥匙安静地躺着其中。

她都多长期没回那些家了哟。他的心有点触动了。

进了屋,他看见自己的藏红色拖鞋干净整齐地摆放在鞋柜上。一抬头,饭桌上摆着热腾腾的饭菜,和两副碗筷。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图