npm-npmscript-gulp-webpack
2018-05-24 本文已影响0人
Taaaaaaaurus
题目1: 如何全局安装一个 node 应用?
- npm install -g app
题目2: package.json 有什么作用?
每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。
http://javascript.ruanyifeng.com/nodejs/packagejson.html
题目3: npm install --save app 与 npm install --save-dev app有什么区别?
- -save-dev 是指将包信息添加到 package.json 里的 devDependencies节点,表示开发时依赖的包。
- -save 是指将包信息添加到 package.json 里的dependencies节点,表示发布时依赖的包。
npm install --production
后面加了–production参数后,会忽略devDependencies节点的包,便于生产环境和本地环境共用同一份package.json
题目4: node_modules的查找路径是怎样的?
- 先从本地目录下寻找,不存在就依次向上级目录中查询,直到系统根目录。node全局安装在系统根目录下,所以全局安装后可在所有目录下使用。
题目5: npm3与 npm2相比有什么改进?yarn和 npm 相比有什么优势? (选做题目)
- npm2所有项目依赖是嵌套关系,而npm3为了改进嵌套过多、套路过深的情况,会将所有依赖放在第二层依赖中(所有依赖只嵌套一次,彼此平行,也就是平铺的结构)
- 对所有已经安装过的包进行cache缓存,下次安装这些包时直接从缓存里拉取,对比与npm对网络环境的依赖,yarn解决了这个痛点。
相对于npm的队列式安装(当一个包安装完毕后才会执行下一个),yarn支持Parallel Installation,速度更快。
clean:yarn支持清理命令,可以清理node-modules目录下的包文件,比如一些捆绑进入的广告以及不必要的文件。
网络恢复:一个单独的请求并不会导致整个安装失败,这些请求可以重试直到请求恢复正常。
yarn.lock: 这是一个版本锁,它记录了所有包的版本信息,也就是说,它保证了在任何一台设备上,你对于包的拉取安装都是严格遵循这个版本信息,从而保证不出现:But it works on my computer这样烦人的问题
题目6: webpack是什么?和其他同类型工具比有什么优势?
题目7:npm script是什么?如何使用?
- npm script 允许在 package.json 中使用 scripts 字段定义脚本命令。通过设置 npm script 可以方便实现前端工作流
对于自定义的脚本命令,需要在命令前加上“run”,而自带的脚本命令则可以直接使用。例如,npm start
和npm run merge
题目8: 使用 webpack 替换 入门-任务15中模块化使用的 requriejs
题目9:gulp是什么?使用 gulp 实现图片压缩、CSS 压缩合并、JS 压缩合并
gulp是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务如使用 gulp 实现图片压缩、CSS 压缩合并、JS 压缩合并等
var gulp = require('gulp');
var cssnano = require('gulp-cssnano');
var concat = require('gulp-concat');
var imagemin = require('gulp-imagemin');
var uglify = require('gulp-uglify');
gulp.task('build:css', function () {
gulp.src('css/*.css')
.pipe(concat('merge.min.css'))
.pipe(cssnano())
.pipe(gulp.dest('dist/css/'));
});
gulp.task('build:js', function () {
gulp.src('js/src/*.js')
.pipe(uglify())
.pipe(concat('merge.min.js'))
.pipe(gulp.dest('dist/js/'));
});
gulp.task('build:img', function () {
gulp.src('*.jpeg')
.pipe(imagemin())
.pipe(gulp.dest('dist/imgs/'))
});
gulp.task('build', ['build:css', 'build:js', 'build:img']);