题目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
demo ##注意:要自己下载所有的demo才可以运行下载
题目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 [英文单词] //目前只支持中译英。
demo