1、如何全局安装一个 node 应用?
使用命令:npm install -g app
其中 -g 代表global,即全局安装。
2、package.json 有什么作用?
每个npm项目的根目录下,都会有一个package.json文件。它包含了对这个项目的各种基本信息的描述,如项目名称(必须)、版本号(必须)、项目描述(可选)、关键字(可选)、项目链接/地址(可选)等等,相当于这个项目的基本说明。
另外,它还包含了这个项目运行所需的其它项目依赖(如有)。这样一来,用户在搭建项目环境的过程中,npm install命令就会根据这个配置文件,自动下载所需的项目依赖,也就是配置项目所需的运行和开发环境。
3、npm install --save app 与 npm install --save-dev app有什么区别?
npm install --save app是将项目运行所需的依赖信息添加到package.json文件中。我们在引用别人的项目前,npm会自动下载它所需这些的依赖模块,以保证项目能够正常运行。
npm install --save-dev app是将项目开发过程中所需的依赖信息添加到package.json文件中。这些依赖模块会在项目开发过程中被调用,但项目实际运行时是不必要的。
4、node_modules的查找路径是怎样的?
先从当前目录下开始查找,如果找不到相应的文件,则依次向上级目录中查找,直到系统根目录下,如果还是没有找到,则会报错。
6、webpack 是什么?和其他同类型工具比有什么优势?
webpack 可以看作是一个“模块打包机”。它所做的事情是:分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式以供浏览器使用。
和其他同类型的工具相比,webpack 具有以下几点优势:
- 代码拆分:webpack 有两种组织模块依赖的方式:同步和异步。异步依赖作为分割点,形成一个新的块。在优化了依赖树后,每一个异步区块都作为一个文件被打包;
- Loader:webpack 本身只能处理原生的 JavaScript 模块,但是 loader 转换器可以将各种类型的资源转换成 JavaScript 模块。也就是说,任何资源都能够成为 webpack 可以处理的模块;
- 智能解析:webpack 有一个智能解析器,几乎可以处理任何第三方库,无论它们的模块形式是 CommonJS、 AMD 还是普通的 JS 文件;
- 插件系统:webpack 拥有一个功能丰富的插件系统,大多数内容功能都是基于这个插件系统运行的。另外我们还可以开发和使用开源的 webpack 插件,来满足各式各样的需求;
- 快速运行:webpack 使用异步 I/O 和多级缓存提高运行效率,极大地加快了它进行增量编译的速度。
7、npm script是什么?如何使用?
npm script是package.json文件中的一个可选字段,我们可以通过它来定义一些常用的脚本命令,然后在需要调用时,通过npm+命令名称来实现,从而避免了重复键入一些较常用的命令。
在使用过程中需要注意的是:1.如果命令名称不是npm内置的字符,则需要使用npm run+命令名称的方式来实现;2.同一条命令下可以同时定义多项操作,这使得一些较为复杂的指令得以轻易地被实现。
8、使用 webpack 替换 入门-任务15 中模块化使用的 requriejs。
代码链接:https://github.com/Jeff12138/Task5
9、gulp是什么?使用 gulp 实现图片压缩、CSS 压缩合并、JS 压缩合并。
gulp是我们在前端开发过程中对代码进行自动化构建的一款工具。它能够根据我们的需求自动地完成 javascript/coffee/sass/less/html/image/css 等文件的的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成等命令,并监听文件在改动后重复指定的这些步骤。总而言之,在开发过程中很多重复的任务都能够通过gulp来使用正确的工具自动完成,从而大大提高我们的工作效率。
var gulp = require('gulp');
//引入组件
var imagemin = require('gulp-imagemin'); //图片压缩
var minifycss = require('gulp-minify-css'); //CSS压缩
var uglify = require('gulp-uglify'); //JS压缩
var concat = require('gulp-concat'); //文件合并
//图片压缩
gulp.task('img',function(argument) {
gulp.src('src/imgs/*')
.pipe(imagemin())
.pipe(gulp.dest('dist/imgs'))
})
//CSS压缩合并
gulp.task('css',function(argument) {
gulp.src('src/css/*.css')
.pipe(minifycss())
.pipie(concat('merge.min.css'))
.pipe(gulp.dest('dist/css/'))
})
//JS压缩合并
gulp.task('js',function(argument) {
gulp.src('src/js/*.js')
.pipe(uglify())
.pipie(concat('merge.js'))
.pipe(gulp.dest('dist/js/'))
})