1.如何全局安裝一個 node 應(yīng)用?
node install -g packagename
2.package.json 有什么作用?
配合npm使用
1. 配置模塊包的基本信息
name,version,decription,entry point,test command
git repository,keywords, author,license
2. 模塊包的依賴管理
dependencies
devDependencies
3. 定義模塊包的使用方式
script
4. 定義模塊包的可執(zhí)行文件地址
bin
5. 定義主程序入口
main
3.npm install --save app 與 npm install --save-dev app有什么區(qū)別?
npm install --save app在package.json中創(chuàng)建
"dependencies ": {
"app": "xxx",
}
發(fā)布之后,項目運行仍依賴這個模塊,會被用戶下載。npm install --save-dev app在package.json中創(chuàng)建
"devDependencies": {
"app": "xxx",
}
開發(fā)時依賴于這個模塊,項目正常運行時不需要這個模塊,不會被用戶所下載。
4.node_modules的查找路徑是怎樣的?
require模塊時,先在當(dāng)前目錄查找node_modules下的模塊,如果沒有,再往上一級目錄中查詢node_modules下的模塊,層層遞進,直到系統(tǒng)根目錄。
5.npm3與 npm2相比有什么改進?
- npm3和npm2在安裝模塊的時候,策略上前者優(yōu)于后者。
- npm2是純粹的不共享包原則。
- npm3的優(yōu)化點在于對于以字母順序安裝npm包的時候,優(yōu)先安裝在node_modules第一層級目錄。
- 這樣做的好處是如果后續(xù)包有相關(guān)依賴性則不需要重復(fù)安裝。
6.webpack是什么?和其他同類型工具比有什么優(yōu)勢?
webpack 是一個現(xiàn)代 JavaScript 應(yīng)用程序的模塊打包器(module bundler)。當(dāng) webpack 處理應(yīng)用程序時,它會遞歸地構(gòu)建一個依賴關(guān)系圖(dependency graph),其中包含應(yīng)用程序需要的每個模塊,然后將所有這些模塊打包成少量的 bundle - 通常只有一個,由瀏覽器加載。
它是高度可配置的,四個核心概念:入口(entry)、輸出(output)、loader、插件(plugins)。
優(yōu)點:
快速運行,Webpack 使用異步 I/O 和多級緩存提高運行效率
功能豐富的插件系統(tǒng)。大多數(shù)內(nèi)容功能都是基于這個插件系統(tǒng)運行的
Webpack 有一個智能解析器,幾乎可以處理任何第三方庫,無論它們的模塊形式是 CommonJS、 AMD 還是普通的 JS 文件
Webpack 本身只能處理原生的 JavaScript 模塊,但是 loader 轉(zhuǎn)換器可以將各種類型的資源轉(zhuǎn)換成 JavaScript 模塊。這樣,任何資源都可以成為 Webpack 可以處理的模塊。
7.npm script是什么?如何使用?
npm scripts容許你在package.json文件的scripts字段定義腳本命令,通過終端使用。
需要注意的是,系統(tǒng)自帶的關(guān)鍵字,運行時可以寫npm XXX
,其他自定義的需要寫成npm run XXX
。
9.gulp是什么?使用 gulp 實現(xiàn)圖片壓縮、CSS 壓縮合并、JS 壓縮合并
它是前端自動化構(gòu)建工作流的利器,可以使用多個插件實現(xiàn)代碼打包、壓縮、合并、檢測、瀏覽器自動刷新等功能。
var gulp = require('gulp')
var cssnano = require('gulp-cssnano') //壓縮css
var uglify = require('gulp-uglify') //壓縮js
var concat = require('gulp-concat') //文件合并
var imagemin = require('gulp-imagemin') //圖片壓縮
gulp.task('css', function(){ //task定義一個任務(wù),執(zhí)行:gulp css
gulp.src('./src/css/*.css') //獲取該路徑下的所有css文件
.pipe(concat('index-merge.css')) //3個文件合并成一份
.pipe(cssnano()) //壓縮數(shù)據(jù)流
.pipe(gulp.dest('./dist/css/')) //放置文件
})
gulp.task('js', function(){
gulp.src('./src/js/*.js')
.pipe(concat('index-merge.js'))
.pipe(uglify())
.pipe(gulp.dest('./dist/js/'))
})
gulp.task('imgs', function(){
gulp.src('./src/imgs/*.jpg')
.pipe(imagemin())
.pipe(gulp.dest('./dist/imgs/'))
})
gulp.task('default', ['css','js','imgs'])