題目1: 如何全局安裝一個 node 應用?
通過使用 npm install -g node應用
題目2: package.json 有什么作用?
通過npm init命令行得到npm的配置文件钩乍,用來描述這個npm包的相關(guān)信息辞州。
以下自己寫的包的信息:
{
"name": "clcweather", //npm包的名字
"version": "1.0.0", //npm包的版本號 //注意:每一次進行npm包文件的改動,version都要進行改變寥粹。
"description": "clc創(chuàng)建的天氣查詢包", //npm包的描述
"main": "index.js", //入口文件
"bin": { //快捷命令行变过。在git bash中就可以使用weatherc 進行
"weatherc": "./index.js" //同時在index.js的開頭 要加上(開頭不要有空格) #!/usr/bin/env node
},
"scripts": { //快速啟動的 //注意:test和start直接通過npm test| start 使用
//別的字就就只能通過npm run xxx涝涤;
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [ //關(guān)鍵字 //在npm官網(wǎng)中可以通過這個關(guān)鍵詞進行搜索
"weather"
],
"author": "komolei", //作者
"license": "ISC", //資格
"dependencies": { //依賴 //因為在index.js中有用到下面的模塊。
"axios": "^0.16.1",
"jquery": "^3.2.1"
}
// "devDependencies": { //一般也會有這個的阔拳。用來測試的崭孤。并不讓用戶進行下載的。這個是用于生產(chǎn)者(開發(fā)者)
// "easytpl": "^1.0.4"
// }
} //注意糊肠。在packjson.js文件中不要有注釋辨宠,要使用本配置,就要去掉所有的注釋
題目3: npm install --save app 與 npm install --save-dev app有什么區(qū)別?
~~npm install --save app是本地下載安裝 ~~
npm install --save-dev app是本地下載安裝货裹。不過這個會在packjson.js中會生成devDenpendencies
--save 將產(chǎn)品運行時(或生產(chǎn)環(huán)境)需要的依賴模塊添加到 package.json 的 dependencies 中嗤形,在發(fā)布后還需要繼續(xù)使用,否則就運行不了弧圆。
--save-dev 將產(chǎn)品的開發(fā)環(huán)境需要的依賴模塊添加到 package.json 的 evDependencies 中,只在開發(fā)時才用到,發(fā)布后用不到它茬暇。
題目4: node_modules的查找路徑是怎樣的?
逐級向上尋找,一直找到根目錄
題目5: npm3與 npm2相比有什么改進叶组?yarn和 npm 相比有什么優(yōu)勢? (選做題目)
題目6: webpack是什么?和其他同類型工具比有什么優(yōu)勢经伙?
webpack是一個為現(xiàn)代js應用進行打包的打包器。當webpack在處理我們的應用的時候勿锅,它會創(chuàng)建依賴來包含我們的應用所需要的模塊帕膜。然后這個包含我們所有模塊的包會一次性被瀏覽器所引用。
優(yōu)勢:
提供commonJS語法溢十。少了amd垮刹,cmd規(guī)范中的define(id?,[dependencies],factory)张弛,直接使用module.exports作為接口荒典,require()來獲取。
題目7:npm script是什么吞鸭?如何使用寺董?
通過npm init來得到package.json文件,然后里面有script刻剥,這個就是npm script
使用:{
"name": "clcwebpack2",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "webpack",
"komo": "echo xixi"
},
"author": "komolei",
"license": "ISC",
"devDependencies": {
"webpack": "^2.5.1"
}
}
先在package.json文件中配置script遮咖,然后輸入命令行npm test(其有一些關(guān)鍵字,可以就直接這樣啟動命令)造虏,
但是對于komo而言御吞。不是關(guān)鍵字,所以要通過npm run komo來啟動
題目8: 使用 webpack 替換 入門-任務15中模塊化使用的 requriejs
題目9:gulp是什么漓藕?使用 gulp 實現(xiàn)圖片壓縮陶珠、CSS 壓縮合并、JS 壓縮合并
gulp是一款可以實現(xiàn)自動化的工具享钞,能幫助你在開發(fā)過程中自動完成任務揍诽。
var gulp = require('gulp');
var cssnano = require('gulp-cssnano');
var concat = require("gulp-concat");
var jshint = require("gulp-jshint"); //在npm中會出現(xiàn)問題。所以使用npm install --save-dev jshint gulp-jshint這個命令行
var clean = require('gulp-clean');
var imagemin = require("gulp-imagemin");
var uglify = require("gulp-uglify");
var htmlmin = require("gulp-htmlmin");
// var browse = require("browser-sync");
// var sequence = require("run-sequence");
gulp.task("css", function () {
return gulp.src("./src/image/*.css")
.pipe(concat("index1.css"))
.pipe(cssnano())
.pipe(gulp.dest("./src/dest"))
})
gulp.task("js", function () {
gulp.src("./src/app/*.js")
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(concat("index1.js"))
.pipe(uglify())
.pipe(gulp.dest("./src/dest/"))
})
gulp.task("html", function () {
return gulp.src("./*.html")
.pipe(htmlmin({
collapseWhitespace: true
}))
// .pipe(htmlmin("index.html"))
.pipe(gulp.dest("./src/dest"))
})
gulp.task("img", function() {
return gulp.src("./src/image/*")
.pipe(imagemin({optimizationLevel:5}))
// .pipe(concat())
.pipe(gulp.dest('./src/dest/img'))
})
gulp.task("default", ["js", "css","img", "html"]);
最后通過命令行:gulp栗竖,就可以直接打包弄好了寝姿。
題目10: 開發(fā)一個 node 命令行天氣應用用于查詢用戶當前所在城市的天氣,發(fā)布到 npm 上去划滋《可以通過如下方式安裝使用(可使用api.jirengu.com里提供的查詢天氣接口) (選做題目)
npm install hunger-weather -g
weather
做了,命令行:
npm install clcweather -g
weatherc [城市名](可選)
也開發(fā)了一個翻譯的npm
npm install komoleifanyi -g
fanyi [英文單詞] //目前只支持中譯英处坪。