1.如何全局安裝一個node應(yīng)用?
npm install -g name
2.package.json有什么用
每個項目的根目錄下,都有一個package.json文件,記錄了這個項目所需要的各種模塊,以及項目的配置信息(名稱、版本、許可證等元數(shù)據(jù))。npm install命令根據(jù)這個配置文件,自動下載所需的模塊,也就是配置項目所需的運行和開發(fā)環(huán)境。
詳細資料
3.npm install --save app 與npm install --save-dev app的區(qū)別
npm install --save 會將該app模塊寫入package.json中的dependencies中,表示此包的運行的依賴。
npm install --save-dev 會將該app模塊寫入package.json中的devDependencies中,表示開發(fā)的依賴,一般是測試所用模塊
比人在使用你的npm包時,會下載dependencies也就是運行所需依賴,而devDependencies中的不會下載。
4.node_module的查找路徑是怎樣的?
node_module首先在當前目錄下查找,在當前目錄下面沒有找到node_module的話就想上一級查找,直至根目錄。
5.webpack是什么?和其他同類型工具比有什么優(yōu)勢?
webpack是一個模塊加載器和打包工具,它可以將許多松散的模塊按照依賴和規(guī)則打包成符合生產(chǎn)環(huán)境部署的前端資源。還可以將按需加載的模塊進行代碼分隔,等到實際需要的時候再異步加載。通過 loader 的轉(zhuǎn)換,任何形式的資源都可以視作模塊,比如 CommonJs 模塊、 AMD 模塊、 ES6 模塊、CSS、圖片、 JSON、Coffeescript、 LESS 等。
優(yōu)勢:
- 對CommonJS、AMD、ES6的語法兼容
- 對js、css、圖片等資源文件都支持打包
- 有獨立的配置文件webpack.config.js
- 可以將代碼切割成不同的chunk,實現(xiàn)按需加載,降低了初始化時間
- 具有強大的Plugin接口,大多是內(nèi)部插件,使用起來比較靈活
- 串聯(lián)式模塊加載器以及插件機制,讓其具有更好的靈活性和擴展性,例如提供對CoffeeScript、ES6的支持
6.npm script是什么?如何使用?
npm 允許在package.json文件里面,使用scripts字段定義腳本命令。
{
// ...
"scripts": {
"build": "node build.js"
}
}
這是package.json文件中的一段片段,里面的scripts字段是一個對象,它的每一個屬性,對應(yīng)一段腳本。比如,build命令對應(yīng)的腳本是node build.js
$ npm run build 等同于執(zhí)行 $node build.js
7.webpack實例
效果→
8.gulp是什么?使用gulp實現(xiàn)圖片壓縮,css壓縮合并,js壓縮合并
gulp是前端開發(fā)過程中對代碼進行構(gòu)建的工具,是自動化項目的構(gòu)建利器;它不僅能對網(wǎng)站資源進行優(yōu)化,而且在開發(fā)過程中很多重復的任務(wù)能夠使用正確的工具自動完成;使用它,我們不僅可以很愉快的編寫代碼,而且大大提高我們的工作效率。
gulp是基于Nodejs的自動任務(wù)運行器,能自動化地完成javascript/coffee/sass/less/html/image/css 等文件的的測試、檢查、合并、壓縮、格式化、瀏覽器自動刷新、部署文件生成,并監(jiān)聽文件在改動后重復指定的這些步驟。在實現(xiàn)上,它借鑒了Unix操作系統(tǒng)的管道(pipe)思想,前一級的輸出,直接變成后一級的輸入,使得在操作上非常簡單。
//安裝插件
npm install gulp-imagemin --save-dev //圖片壓縮
npm install gulp-cssnano --save-dev //css壓縮
npm install uglify --save-dev //js壓縮
npm install gulp-jshint --save-dev //js規(guī)范檢查
npm install gulp-concat --save-dev //文件合并
npm install gulp-rename --save-dev //重命名
//gulpfile.js
//引入插件
var gulp = require('gulp'),
cssnano = require('gulp-cssnano'),
concat = require('gulp-concat'),
jshint = require('gulp-jshint'),
uglify = require('gulp-uglify'),
imagemin = require('gulp-imagemin'),
rename = require('gulp-rename');
//css合并壓縮
gulp.task('css', function () {
gulp.src('./src/css/*.css')
.pipe(concat('merge.css')) //將文件合并
.pipe(rename({
suffix: '.min' //文件名后加上 .min
}))
.pipe(cssnano()) //css壓縮
.pipe(gulp.dest('dist/css/')); //輸出
})
//js合并壓縮
gulp.task('js', function () {
gulp.src('src/js/*.js')
.pipe(jshint()) //js規(guī)范檢查
.pipe(jshint.reporter('default'))
.pipe(concat('merge.js'))
.pipe(rename({
suffix: '.min'
}))
.pipe(uglify())
.pipe(gulp.dest('dist/js/'));
})
//圖片壓縮
gulp.task('image', function () {
gulp.src('src/imgs/*')
.pipe(imagemin())
.pipe(gulp.dest('dist/imgs/'));
})
gulp.task('build', ['css', 'js', 'image'])