web前端-深入(5)-npm-npmscript-gulp-webpack

1已卸、如何全局安裝一個(gè) node 應(yīng)用?

npm install -g [name]

2、package.json 有什么作用翠订?

package.json定義了這個(gè)項(xiàng)目所需要的各種模板,以及項(xiàng)目的配置信息遵倦,當(dāng)我們使用npm init命令時(shí)即可以生成package.json.

{
        "name": "my_package",     //項(xiàng)目名稱尽超,只能一個(gè)單詞且全小寫(xiě),允許-和_梧躺。發(fā)布的時(shí)候名字和npm官網(wǎng)不重名
        "version": "1.0.0",      //版本號(hào)似谁。 
        "main": "index.js",      //main字段指定了加載的入口文件傲绣。
        "scripts": {                 //指定了運(yùn)行腳本命令的npm命令行縮寫(xiě)
            "test": "echo \"Error: no test specified\" && exit 1"    //一般默認(rèn)一個(gè)test的空文件夾、用作寫(xiě)測(cè)試代碼巩踏。
        },
        "keywords": [],  //項(xiàng)目的關(guān)鍵詞秃诵。
        "author": "ag_dubs", //作者名稱
        "license": "ISC", //協(xié)議 
        "repository": {  // 用來(lái)存放到 版本管理遠(yuǎn)程服務(wù)。
            "type": "git",
            "url": "https://github.com/ashleygwilliams/my_package.git"
        },
        "dependencies": {   // 正式使用時(shí)塞琼,依賴的包
            "my_dep": "^1.0.0"
        },
        "devDependencies" : {//開(kāi)發(fā)或者測(cè)試時(shí)菠净,依賴的包,用戶使用時(shí)不會(huì)被下載彪杉。
            "my_test_framework": "^3.1.0"
        }
        "bugs": {一個(gè)對(duì)象毅往,包含url網(wǎng)址和郵箱,當(dāng)使用者發(fā)現(xiàn)問(wèn)題時(shí)派近,可以通過(guò)這兩種方式提交問(wèn)題
            "url": "https://github.com/ashleygwilliams/my_package/issues"
        },
        "homepage": "https://github.com/ashleygwilliams/my_package"  //項(xiàng)目主頁(yè)
    }

3攀唯、npm install --save app 與 npm install --save-dev app有什么區(qū)別?

  1. npm install --save app:將在當(dāng)前目錄導(dǎo)入npm依賴包,并寫(xiě)入'dependencies'字段渴丸,當(dāng)其他人下載代碼并運(yùn)行npm install時(shí)會(huì)自動(dòng)下載侯嘀。
  2. npm install --save-dev app:將在當(dāng)前目錄導(dǎo)入npm依賴包,并寫(xiě)入'devDependencies'字段谱轨,當(dāng)其他人下載代碼并運(yùn)行npm install時(shí)不會(huì)自動(dòng)下載残拐。

4、 node_modules的查找路徑是怎樣的?

當(dāng)前目錄下尋找node_modules下的xxx碟嘴,若沒(méi)有溪食,則返回到上一級(jí)目錄的node_modules下尋找xxx,最終會(huì)找到根目錄下node_modules下的xxx娜扇。

5错沃、npm3與 npm2相比有什么改進(jìn)?yarn和 npm 相比有什么優(yōu)勢(shì)? (選做題目)

6雀瓢、webpack是什么枢析?和其他同類型工具比有什么優(yōu)勢(shì)?

  1. 什么是webpack:Webpack可以看做是模塊打包機(jī):它做的事情是刃麸,分析你的項(xiàng)目結(jié)構(gòu)醒叁,找到JavaScript模塊以及其它的一些瀏覽器不能直接運(yùn)行的拓展語(yǔ)言(Scss,TypeScript等)泊业,并將其轉(zhuǎn)換和打包為合適的格式供瀏覽器使用把沼。
  2. Gulp的工作方式是:在一個(gè)配置文件中,指明對(duì)某些文件進(jìn)行類似編譯吁伺,組合饮睬,壓縮等任務(wù)的具體步驟,這個(gè)工具可以自動(dòng)替你完成這些任務(wù)篮奄。Webpack的工作方式是:把你的項(xiàng)目當(dāng)做一個(gè)整體捆愁,通過(guò)一個(gè)給定的主文件(如:index.js)割去,Webpack將從這個(gè)文件開(kāi)始找到你的項(xiàng)目的所有依賴文件,使用loaders處理它們昼丑,最后打包為一個(gè)瀏覽器可識(shí)別的JavaScript文件呻逆。
  3. webpack的優(yōu)勢(shì)
    1、webpack是以commonJS的形式來(lái)書(shū)寫(xiě)腳本菩帝,但對(duì)AMD/CMD的支持也很全面
    2咖城、Webpack 有兩種組織模塊依賴的方式,同步和異步胁附。異步依賴作為分割點(diǎn)酒繁,形成一個(gè)新的塊。在優(yōu)化了依賴樹(shù)后控妻,每一個(gè)異步區(qū)塊都作為一個(gè)文件被打包州袒。
    3、webpack本身只能處理原生JS模塊弓候,但是loader轉(zhuǎn)換器可以將各種類型的資源轉(zhuǎn)換成JS模塊郎哭。這樣,任何資源都可以成為webpack可以處理的模塊
    4菇存、webpack有一個(gè)智能解析器夸研,幾乎可以處理任何第三方庫(kù),無(wú)論它們的模塊形式是commonJS,AMD還是普通的JS文件依鸥。
    5亥至、webpack還有一個(gè)功能豐富的插件系統(tǒng)。大多數(shù)內(nèi)容功能都是基于這個(gè)插件系統(tǒng)運(yùn)行的贱迟,還可以開(kāi)發(fā)和使用開(kāi)源的webpack插件姐扮,來(lái)滿足各種各樣的需求。
    6衣吠、webpack使用異步I/O和多級(jí)緩存提高運(yùn)行效率茶敏,使得它能夠快速增量編譯

7、npm script是什么缚俏?如何使用惊搏?

npm 允許在package.json文件里面,使用scripts字段定義腳本命令忧换。這些定義在package.json里面的腳本恬惯,就稱為 npm script。

//package.json
"scripts":{
  "start": "mkdir cd",
  "bulid":"touch index1.js",
  "test":"echo test..."
}
npm start
npm test
npm run bulid

8包雀、使用 webpack 替換 入門-任務(wù)15中模塊化使用的 requriejs

企業(yè)官網(wǎng)
代碼

9宿崭、gulp是什么?使用 gulp 實(shí)現(xiàn)圖片壓縮才写、CSS 壓縮合并葡兑、JS 壓縮合并

gulp是前端自動(dòng)化構(gòu)建工作流的利器,自動(dòng)化地完成 javascript/coffee/sass/less 等文件的的測(cè)試赞草、檢查讹堤、合并、壓縮厨疙、格式化洲守、瀏覽器自動(dòng)刷新、部署文件生成沾凄,并監(jiān)聽(tīng)文件在改動(dòng)后重復(fù)指定的這些步驟梗醇。

//gulpfile.js

var gulp = require('gulp'), 
     minify= require('gulp-minify-css'),     //css壓縮
     uglify= require('gulp-uglify'),            //生成文件
     concat=require('gulp-concat'),        //合并成一個(gè)文件
     
     rename=require('gulp-rename'),     //重命名
     clean=require('gulp-clean'),           //清空文件夾

     minhtml=require('gulp-htmlmin'),     //html壓縮
     jshint=require('gulp-jshint'),            //js代碼規(guī)范性檢查
     imagemin=require('gulp-imagemin');          //圖片壓縮

gulp.task('html',function(){
  return gulp.src('src/*.html')
        .pipe(minhtml({collapseWhitespace:true}))
        .pipe(gulp.dest('dist'))
});

gulp.task('css', function(){
  gulp.src("src/css/*.css")       
         .pipe(concat("merge.min.css"))
         .pipe(minifycss())
         .pipe(gulp.dest("dist/css/"));
});

gulp.task('js', function(){
  gulp.src("src/js/*.js")     
         .pipe(jshint())
         .pipe(jshint.reporter('default'))  

         .pipe(concat('merge.js'))
         .pipe(uglify())
         .pipe(gulp.dest("dist/js/"));
});

gulp.task('img', function(argument){
  gulp.src("src/img/*")     
         .pipe(imagemin())
         .pipe(gulp.dest("dist/imgs/"));  
});

gulp.task('clean', function(argument){
  gulp.src("dist/*",{read:false})     
         .pipe(clean());  
});

gulp.task('build', ['html','css','js','img' ]);

10、開(kāi)發(fā)一個(gè) node 命令行天氣應(yīng)用用于查詢用戶當(dāng)前所在城市的天氣撒蟀,發(fā)布到 npm 上去叙谨。可以通過(guò)如下方式安裝使用(可使用api.jirengu.com里提供的查詢天氣接口) (選做題目)

暫定

筆記

第一課
1保屯、NPM
  1. NPM(node package manager)手负,通常稱為node包管理器。
  2. 主要功能就是管理node包姑尺,包括:安裝竟终、卸載、更新切蟋、查看统捶、搜索、發(fā)布等。(只要在npm官網(wǎng)搜索包名稱,選擇使用量最多的一個(gè)包愕宋,然后根據(jù)使用說(shuō)明安裝包)
  3. npm是基于couchdb的一個(gè)數(shù)據(jù)庫(kù)形葬,詳細(xì)記錄了每個(gè)包的信息,包括作者板丽、版本、依賴、授權(quán)信息等兑凿。它的一個(gè)很重要的作用就是:將開(kāi)發(fā)者從繁瑣的包管理工作(版本、依賴等)中解放出來(lái)茵瘾,更加專注于功能的開(kāi)發(fā)礼华。
2、命令行
node -v   //查看node版本
npm -v    //查看npm版本
sudo npm install npm -g    //更新npm的版本
3拗秘、node包的安裝
  1. 本地安裝:package會(huì)被下載到當(dāng)前所在目錄圣絮,也只能在當(dāng)前目錄下使用
//npm install pkg
npm install grunt-cli
//安裝結(jié)束后,當(dāng)前目錄下回多出一個(gè)node_modules目錄雕旨,grunt-cli就安裝在里面扮匠。

運(yùn)行如上命令捧请,就會(huì)在當(dāng)前目錄下安裝grunt-cli(grunt命令行工具)

  1. 全局安裝:package會(huì)被下載到到特定的系統(tǒng)目錄下,安裝的package能夠在所有目錄下使用
npm install -g grunt-cli    //npm uninstall -g grunt-cli刪除全局安裝的包

運(yùn)行如上命令棒搜,就會(huì)在特定的系統(tǒng)目錄下安裝grunt-cli(grunt命令行工具)

  1. 如果使用npm安裝插件太慢(被墻)疹蛉,可執(zhí)行
 npm install -g cnpm --registry=https://registry.npm.taobao.org   //先安裝cnpm, 之后再安裝插件時(shí)用cnpm安裝cnpm install pkg
4、node包下載后代碼的使用
//這是目錄表
www/
    demo1/
    --demo2/
    ----node_modules/
    -----marked.js
    ----index.js
//index.js
var marked=require("marked");    
//代碼會(huì)在當(dāng)前目錄下的node_modules文件下找marked.js,若沒(méi)有力麸,則在上一級(jí)的demo1的文件夾下的node_modules文件下找marked.js可款,直到找到為止
第二課
1、新建node包
  1. 在bash里新建一個(gè)新的文件夾
  2. 在新建目錄下執(zhí)行
npm init   //會(huì)出現(xiàn)一段需要輸入的文字
  1. 根據(jù)需求輸入node包信息
name:demo1      //命名必須是唯一的克蚂,不能和npm官網(wǎng)的node包重名
version:(1.0.0)     //默認(rèn)
description:這是測(cè)試
enter point:(main.js)    //輸入入口闺鲸,當(dāng)調(diào)用這個(gè)包時(shí)就執(zhí)行這個(gè)腳本
test command:
git reposotory:http://github.com/Ethan66/demo1   //輸入上傳到github的網(wǎng)址
keywords:this is test
author: Ethan
輸入 yes完成node初始化,當(dāng)前目錄下出現(xiàn)了package.json埃叭,里面有輸入的信息
  1. 新建readme.md摸恍,相當(dāng)于使用指南
  2. 新建main.js,輸入其他依賴的包
//main.js
var marked=require("marked");
var str=marked(# hello world);
modul.exports=str;
  1. 下載需要的包
npm install --save marked   //在npm 官網(wǎng)下載包
//因?yàn)楫?dāng)前目錄沒(méi)有依賴的marked包游盲,所以只有下載下來(lái)才不會(huì)報(bào)錯(cuò)
//同時(shí)误墓,在package.json文件中新增了dependencise屬性
  1. 下載自己開(kāi)發(fā)測(cè)試需要的包
npm install --save-dev easytal    //在npm官網(wǎng)下載包
//區(qū)別于6,現(xiàn)在下載的包是用于自己測(cè)試自己開(kāi)發(fā)的包所需要的依賴益缎,并不是自己開(kāi)發(fā)的包的依賴
//package.json文件中增加的devDependencise屬性谜慌,別人下載我的包的時(shí)候不會(huì)同時(shí)下載這個(gè)依賴的包
2、上傳包
  1. 登錄npm
npm login
//在出現(xiàn)的提示中輸入name和password
  1. 上傳自己開(kāi)發(fā)好的包
npm publish
  1. 確認(rèn)是否發(fā)送成功
在npm官網(wǎng)搜索包的名字
3莺奔、新建包用于全局安裝
  1. 作用:不需要指定文件夾欣范,在任何文件夾下都可以執(zhí)行包
  2. 執(zhí)行新建node包中的1-7步驟
  3. 在main.js,增加語(yǔ)句
//main.js
#!/usr/bin/env node    //一定要寫(xiě)這句話,表示用node執(zhí)行當(dāng)前的文件令哟,在命令行中不用在開(kāi)頭寫(xiě)node
var marked=require("marked");
var str=marked(# hello world);
modul.exports=str;
  1. 在package.json中增加語(yǔ)句
"bin":{
  "example":"./main.js"     //表示當(dāng)在命令行中輸入example,就會(huì)執(zhí)行main.js的這個(gè)腳本
}
  1. 上傳包(跟2.上傳包步驟一樣)
  2. 安裝包恼琼,看是否可以全局
npm install -g demo1   //demo1為package.json的name值
npm list -g --depth 0  //查看全局安裝過(guò)的包
//C:\Users\Administrator\AppData\Roaming\npm(測(cè)過(guò):windows所有全局安裝的node包都在這個(gè)路徑下)
//顯示路徑/usr/local/lib/node_modules/為所有全局安裝的node包都在這個(gè)路徑下
4、 獲取命令行輸入的參數(shù)
node main.js 杭州      //如何在代碼中獲取杭州
//main.js
console.log(process.argv[2])    //process.argv是一個(gè)數(shù)組屏富,第三個(gè)就是命令行輸入的參數(shù)
5晴竞、 模塊
//和jq中ajax發(fā)請(qǐng)求類似的模塊
axios或request     //向一個(gè)地址發(fā)送請(qǐng)求,獲取數(shù)組
6狠半、 package.json其他參數(shù)
  1. 在命令行輸入npm run,然后再輸入scripts的屬性名(start,bulid,test),執(zhí)行相對(duì)于的語(yǔ)句噩死,注意:只有start和test前面寫(xiě)省略run,其他全部要加run
"scripts":{
  "start": "mkdir cd",
  "bulid":"touch index1.js",
  "test":"echo test..."
}
npm start
npm test
npm run bulid

第三課

1、gulp簡(jiǎn)介
  1. 地址 http://gulpjs.com/
  2. 作用:打造前端工作流的利器神年,打包已维、壓縮、合并已日、git垛耳、遠(yuǎn)程操作...
  3. 提高編譯效率:采用node.js數(shù)據(jù)流的機(jī)制。
    (非數(shù)據(jù)流:打開(kāi)一文件,修改文件堂鲜,保存文件栈雳,再打開(kāi),再修改后保存...泡嘴。數(shù)據(jù)流:修改文件不保存甫恩,等下次操作直接進(jìn)行操作數(shù)據(jù)流逆济,等全部操作完成再輸出)
2酌予、gulp安裝
  1. 全局安裝gulp
npm install gulp-cli -g
  1. 執(zhí)行第二課"新建node包"中的1-4步驟
  2. 在命令行中新建gulpfile.js
  3. 打開(kāi)gulpfile.js文件,輸入固定代碼
var gulp = require('gulp');       //需要安裝gulp包
var pug = require('gulp-pug');    //把一個(gè)模板生成html
var less = require('gulp-less');     //把一個(gè)less文件生成css
var minifyCSS = require('gulp-csso');     //把css文件壓縮

//給gulp創(chuàng)建了一個(gè)html的任務(wù)奖慌,把src里面的路徑文件變成數(shù)據(jù)流傳給pipe抛虫,再傳給pug進(jìn)行處理,最后輸出為html简僧。在命令行中執(zhí)行g(shù)ulp html就會(huì)執(zhí)行這條任務(wù)
gulp.task('html', function(){
  return gulp.src('client/templates/*.pug')
    .pipe(pug())
    .pipe(gulp.dest('build/html'))
});

gulp.task('css', function(){
  return gulp.src('client/templates/*.less')
    .pipe(less())
    .pipe(minifyCSS())
    .pipe(gulp.dest('build/css'))
});
//這條語(yǔ)句表示在命令行中輸入gulp,就會(huì)默認(rèn)執(zhí)行html和css兩個(gè)任務(wù)
gulp.task('default', [ 'html', 'css' ]);
  1. 根據(jù)gulpfile.js代碼中第一行需求要安裝依賴
npm install gulp --save-dev --registry=https://registry.npm.taobao.org      //通過(guò)淘寶鏡像安裝建椰,不然太慢了
  1. 命令行輸入gulp(若提示沒(méi)有找到,說(shuō)明gulp沒(méi)有全局安裝)
顯示提示:
Cannot find module 'gulp-cssnano'      //根據(jù)提示安裝依賴
  1. 安裝gulp-cssnano依賴
npm install --save-dev gulp-cssnano

第四課

1岛马、實(shí)戰(zhàn)
  1. 案例:css壓縮
//gulpfile.js

var gulp = require('gulp'); 
var cssnano = require('gulp-cssnano');     //css壓縮
var concat= require('gulp-concat');            //生成文件

gulp.task('build:css', function(){
  gulp.src("./src/css/*.css")       //想要個(gè)別文件:src(['client/templates/1.less','client/templates/3.less'])
         .pipe(concat("index-merge.css"))
         .pipe(cssnano())
         .pipe(gulp.dest("dist/css/"));
});

gulp.task('default', [ 'build:css' ]);
  1. 案例:修改文件后重啟服務(wù)器
//gulpfile.js

var gulp = require('gulp'); 
var browserSync= require('browser-sync').create();     //css壓縮
var fs= require('fs');            //生成文件

gulp.task('reload', function(){
 browserSync.reload();
});

gulp.task('server', function(){         //當(dāng)運(yùn)行g(shù)ulp server時(shí)棉姐,本地開(kāi)啟服務(wù)器,瀏覽器會(huì)看到這個(gè)頁(yè)面
 browserSync.init({
     server:{
       baseDir:"./src"
      }
  })
});

gulp.watch(['**/*.css','**/*.html','**/*.js'],['reload']);      //當(dāng)文件發(fā)生改動(dòng)啦逆,啟動(dòng)reload
  1. 案例:修改后有版本號(hào)
//gulpfile.js

var gulp=require('gulp'),
      rev=require('gulp-rev'),      //添加版本號(hào)
      revReplace=require('gulp-rev-replace'),            //版本號(hào)替換
      useref=require('gulp-useref'),                        //解析html資源定位
      gulpif=require('gulp-if'),
      filter=require('gulp-filter'),
      uglify=require('gulp-uglify'),
      csso=require('gulp-csso'),                        //css優(yōu)化壓縮
      clean=require('gulp-clean'),
      imagemin=require('gulp-imagemin'),
      concat=require('gulp-concat'),
      less=require('gulp-less'),
      autoprefixer=require('gulp-autoprefixer'),       //css自動(dòng)加前綴伞矩,css后編譯,兼容其他的瀏覽器
      connect=require('gulp-connect');

gulp.task('img',function(){
  gulp.src('src/imgs/*').pipe(imagemin())
      .pipe(gulp.dest('dist/imgs'))
});

gulp.task(dist:'css',function(){
  gulp.src('dist/css/*').pipe(clean());
  return gulp.src('src/css/*.less')
      .pipe(less()).pipe(csso())
      .pipe(concat('merge.css'))
      .pipe(autoprefixer(){
            browsers:['last 2 versions'],      //考慮瀏覽器最新的2個(gè)版本
            cascade:false
       })
      .pipe(gulp.dest('dist/css'))
});

gulp.task('src:css',function(){
  gulp.src('src/css/*').pipe(clean());
  return gulp.src('src/css/*.less')
      .pipe(less()) .pipe(concat('merge.css'))
      .pipe(autoprefixer(){
            browsers:['last 2 versions'],
            cascade:false
       })
      .pipe(gulp.dest('src/css'))
});

gulp.task('js',function(){
  gulp.src('src/js/*').pipe(clean());
  return gulp.src('src/js/*.js').pipe(uglify()) 
      .pipe(concat('merge.js'))
      .pipe(gulp.dest('dist/js'))
});

gulp.task('revision',['dist:css','js'],function(){
  return gulp.src(['dist/js/*.js','dist/css/*'])
      .pipe(rev()) .pipe(gulp.dest('dist'))
      .pipe(rev.manifest())                          //會(huì)生成rev-manifest.json文件夏志,記錄版本及對(duì)應(yīng)文件名
      .pipe(gulp.dest('dist'))
});

gulp.task('index',['revision'],function(){
  var mainifest=gulp.src('./dist/rev-mainifest.json');     //得到記錄版本號(hào)的文件
  return gulp.src('src/index.html')
      .pipe(revReplace(                       //對(duì)index.html進(jìn)行各替換乃坤,需要在index.html內(nèi)寫(xiě)上注釋(視頻39分處)
            manifest:manifest
      )) 
      .pipe(useref())
      .pipe(gulp.dest('dist'))
});

gulp.task('watch',function(){
  gulp.watch('src/**/*.less',['src:css'])
})

gulp.task('connect',function(){                 //作用:創(chuàng)建個(gè)服務(wù)器,當(dāng)你保存的時(shí)候會(huì)自動(dòng)刷新
  connect.server({
            root:'src',
            livereload:true
      })
})

gulp.task('reload',function(){
   gulp.src('src/*.html').pipe(connect.reload())
})

gulp.task('change',function(){
   gulp.wathc(['src/**/*'],['src:css','reload'])
})

gulp.task('server',['connect','change'])
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末沟蔑,一起剝皮案震驚了整個(gè)濱河市湿诊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瘦材,老刑警劉巖厅须,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異食棕,居然都是意外死亡朗和,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門宣蠕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)例隆,“玉大人,你說(shuō)我怎么就攤上這事抢蚀《撇悖” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)唱逢。 經(jīng)常有香客問(wèn)我吴侦,道長(zhǎng),這世上最難降的妖魔是什么坞古? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任备韧,我火速辦了婚禮,結(jié)果婚禮上痪枫,老公的妹妹穿的比我還像新娘织堂。我一直安慰自己,他們只是感情好奶陈,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布易阳。 她就那樣靜靜地躺著,像睡著了一般吃粒。 火紅的嫁衣襯著肌膚如雪潦俺。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天徐勃,我揣著相機(jī)與錄音事示,去河邊找鬼。 笑死僻肖,一個(gè)胖子當(dāng)著我的面吹牛肖爵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播檐涝,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼遏匆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了谁榜?” 一聲冷哼從身側(cè)響起幅聘,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎窃植,沒(méi)想到半個(gè)月后帝蒿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡巷怜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年葛超,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片延塑。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绣张,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出关带,到底是詐尸還是另有隱情侥涵,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站芜飘,受9級(jí)特大地震影響务豺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嗦明,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一笼沥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧娶牌,春花似錦奔浅、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至累榜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間灵嫌,已是汗流浹背壹罚。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留寿羞,地道東北人猖凛。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像绪穆,于是被迫代替她去往敵國(guó)和親辨泳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 在現(xiàn)在的前端開(kāi)發(fā)中玖院,前后端分離菠红、模塊化開(kāi)發(fā)、版本控制难菌、文件合并與壓縮试溯、mock數(shù)據(jù)等等一些原本后端的思想開(kāi)始...
    Charlot閱讀 5,431評(píng)論 1 32
  • 前言 眾所周知目前比較火的工具就是gulp和webpack,但webpack和gulp卻有所不同郊酒,本人兩者的底層研...
    cduyzh閱讀 1,358評(píng)論 0 13
  • 無(wú)意中看到zhangwnag大佬分享的webpack教程感覺(jué)受益匪淺遇绞,特此分享以備自己日后查看,也希望更多的人看到...
    小小字符閱讀 8,140評(píng)論 7 35
  • 最近在學(xué)習(xí) Webpack,網(wǎng)上大多數(shù)入門教程都是基于 Webpack 1.x 版本的,我學(xué)習(xí) Webpack 的...
    My_Oh_My閱讀 8,166評(píng)論 40 247
  • 題目1: 如何全局安裝一個(gè) node 應(yīng)用? Node模塊采用npm install命令安裝燎窘。 每個(gè)模塊可以“全局...
    蕭雪圣閱讀 1,770評(píng)論 0 1