題目1: 如何全局安裝一個 node 應用?
通過使用 npm install -g node應用
題目2: package.json 有什么作用?
通過npm init命令行得到npm的配置文件,用來描述這個npm包的相關信息。
以下自己寫的包的信息:
{
"name": "clcweather", //npm包的名字
"version": "1.0.0", //npm包的版本號 //注意:每一次進行npm包文件的改動,version都要進行改變。
"description": "clc創建的天氣查詢包", //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": [ //關鍵字 //在npm官網中可以通過這個關鍵詞進行搜索
"weather"
],
"author": "komolei", //作者
"license": "ISC", //資格
"dependencies": { //依賴 //因為在index.js中有用到下面的模塊。
"axios": "^0.16.1",
"jquery": "^3.2.1"
}
// "devDependencies": { //一般也會有這個的。用來測試的。并不讓用戶進行下載的。這個是用于生產者(開發者)
// "easytpl": "^1.0.4"
// }
} //注意。在packjson.js文件中不要有注釋,要使用本配置,就要去掉所有的注釋
題目3: npm install --save app 與 npm install --save-dev app有什么區別?
~~npm install --save app是本地下載安裝 ~~
npm install --save-dev app是本地下載安裝。不過這個會在packjson.js中會生成devDenpendencies
--save 將產品運行時(或生產環境)需要的依賴模塊添加到 package.json 的 dependencies 中,在發布后還需要繼續使用,否則就運行不了。
--save-dev 將產品的開發環境需要的依賴模塊添加到 package.json 的 evDependencies 中,只在開發時才用到,發布后用不到它。
題目4: node_modules的查找路徑是怎樣的?
逐級向上尋找,一直找到根目錄
題目5: npm3與 npm2相比有什么改進?yarn和 npm 相比有什么優勢? (選做題目)
題目6: webpack是什么?和其他同類型工具比有什么優勢?
webpack是一個為現代js應用進行打包的打包器。當webpack在處理我們的應用的時候,它會創建依賴來包含我們的應用所需要的模塊。然后這個包含我們所有模塊的包會一次性被瀏覽器所引用。
優勢:
提供commonJS語法。少了amd,cmd規范中的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(其有一些關鍵字,可以就直接這樣啟動命令),
但是對于komo而言。不是關鍵字,所以要通過npm run komo來啟動
題目8: 使用 webpack 替換 入門-任務15中模塊化使用的 requriejs
題目9:gulp是什么?使用 gulp 實現圖片壓縮、CSS 壓縮合并、JS 壓縮合并
gulp是一款可以實現自動化的工具,能幫助你在開發過程中自動完成任務。
var gulp = require('gulp');
var cssnano = require('gulp-cssnano');
var concat = require("gulp-concat");
var jshint = require("gulp-jshint"); //在npm中會出現問題。所以使用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: 開發一個 node 命令行天氣應用用于查詢用戶當前所在城市的天氣,發布到 npm 上去。可以通過如下方式安裝使用(可使用api.jirengu.com里提供的查詢天氣接口) (選做題目)
npm install hunger-weather -g
weather
做了,命令行:
npm install clcweather -g
weatherc [城市名](可選)
也開發了一個翻譯的npm
npm install komoleifanyi -g
fanyi [英文單詞] //目前只支持中譯英。