题目1: 如何全局安装一个 node 应用?
npm install -g xxx表示全局安装一个node包。
题目2:package.json 有什么作用?
相当于本地包(项目)的一个文档说明。
其中最重要的几个属性分别是
main // 规定文件的入口。
dependencies ...// 上传时,告诉npm,这个文件使用过程所用到的包,别人下载你所创建的包时,npm就会自动安装所依赖的包。
dev dependencies ..// 开发所依赖的包,别人使用时不会下载这个包。
script // 可以简单的制定前端工作流,便于使用,而且兼容性好。
npm install ,当package.json中的dependecies 或这 dev dependencies 改变时,使用这个命令就会自动下载所依赖的包。
{
"name": "my_package", //你的项目名称,全部小写,不能有空格,一个单词,允许-和_. 如果是要发布自己的node插件,一般用github上面项目名称。 下次有机会说明 npm 上面的发布流程。
"version": "1.0.0", //你的项目版本号,最好遵守 GNU 版本号管理。
"main": "index.js", //目录中启动文件名称。或者称之为入口文件,一般都是 index.js
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1" //一般默认一个test的空文件夹、用作写测试代码。
},
"keywords": [], //项目的关键词。 一般用不到,发布npm才用得到。
"author": "ag_dubs", //作者名称
"license": "ISC", //协议
"repository": { // 用来存放到 版本管理远程服务。 发布npm才有用
"type": "git",
"url": "https://github.com/ashleygwilliams/my_package.git"
},
"dependencies": { // 正式使用时,依赖的包
"my_dep": "^1.0.0"
},
"devDependencies" : {//开发或者测试时,依赖的包。
"my_test_framework": "^3.1.0"
}
"bugs": { //同repository
"url": "https://github.com/ashleygwilliams/my_package/issues"
},
"homepage": "https://github.com/ashleygwilliams/my_package" //项目主页、 发布才有用
}
题目3: npm install --save app 与 npm install --save-dev app有什么区别?
- npm install --save app 和npm install --save-dev app 两个都是当前文件夹安装app包,并且都是这个包所依赖的其他包, 但是,--save 执行时,会自动更新 packge.json中的dependencies 。而 --save-dev 会更新 dev dependencies, 开发依赖包。当我们发布包成功,别人下载时,会自动下载 dependencies。而开发依赖的包,不会被用户下载。
题目4: nodule_modules的查找路径是怎样的?
当我们在 入口文件 require一个包时,首先 会在当前的nodeule-modules下查找,如果没有这个文件或者没有这个包,就向上级目录查找,直到查询到根目录。
题目6:webpack是什么?和其他同类型工具比有什么优势?
webpack是一个模块打包器。
- webpack的核心是 一切皆模块的思想,所以,任何模块,CSS,图片,字体,都被webpack当做模块来处理,我们只需要在需要这些模块的时候来require,这样,开发的时候,逻辑就很清晰。开发人员不由自主的就可以让文件分割的彻底,变成一个个的块。只要配置好webpack,就可以实现按需要来加载这些块。
- 独有的loader机制,我们可以用loader来处理目前浏览器不兼容的less,ES6啊,然后,webpack自己来处理这些事情,把浏览器看不懂的变成看的懂的,开发人员只需要关注功能实现就可以了。
题目7:npm script是什么?如何使用?
npm script 是利用packge.json中 script 这个属性,制定一个工作流。
比如 ''test'':''mkdir abc'',我们就可以直接使用npm test在当前文件夹创建一个 mkdir abc;
(但是除了 test和start,设置的其他命令均需要 用npm run xxx来启用),对此,我们可以在命令行的使用上就可以简化很多。不用来敲很多代码,来执行一个命令,而是敲少量的代码,来执行一系列的事情。
题目8: 使用 webpack 替换 入门-任务15中模块化使用的 requriejs
github: https://github.com/sys521/task5
题目9:gulp是什么?使用 gulp 实现图片压缩、CSS 压缩合并、JS 压缩(合并)
var gulp= require('gulp')
var gulpconcat=require('gulp-concat')
var gulpimagemin=require('gulp-imagemin')
var gulpuglify= require('gulp-uglify')
var cleanCss=require('gulp-clean-css')
gulp.task('js',function(){ //js合并,压缩
return gulp.src('./src/js/*.js')
.pipe(gulpconcat('index.js'))
.pipe(gulpuglify())
.pipe(gulp.dest('./dist/js'))
})
gulp.task('imgs',function(){ //图片压缩
return gulp.src('./src/imgs/*')
.pipe(gulpimagemin())
.pipe(gulp.dest('./dist/imgs/'))
})
gulp.task('css',function(){
return gulp.src('./src/css/*.css') //css合并压缩
.pipe(gulpconcat('merge.css'))
.pipe(cleanCss({compatibility:'ie8'}))
.pipe(gulp.dest('./dist/css'))
})
gulp.task('build',['js','css','imgs'])
# 题目10:npm制作一个天气预报的包
npm install npmweather -g
weather
weather 杭州
但是今天好像不行
![接口好像不稳定](https://img.haomeiwen.com/i6127894/7bb9cc86ca9fb392.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
网友评论