我爱编程

npm_自动化工作流_模块打包

2017-09-18  本文已影响0人  Wensx

题目1: 如何全局安装一个 node 应用?

npm install -g [name]

题目2: package.json 有什么作用?

package.json记录了NPM包的所有相关信息,包括作者、简介、包依赖、构建等信息,格式是严格的JSON格式
其主要内容有:

题目3: npm install --save app 与 npm install --save-dev app有什么区别?

npm install -save app 是将app安装后放入当前包的依赖dependencies中, npm install --save-dev app是将app安装后放入开发者依赖中,他人使用时不会下载这些依赖。

题目4: node_modules的查找路径是怎样的?

先在包内node_modules查找若找不到就去上一级的目录查找,若还找不到继续向上查找,直到查找到根目录为止

题目5: npm3与 npm2相比有什么改进?yarn和 npm 相比有什么优势? (选做题目)

  1. npm3与 npm2相比有什么改进?
    npm是node.js的包依赖管理工具,不过有时时侯项目依赖过多,造成路径过深,超过了操作系统的文件深度限制。NPM3对此做了很大改进。简单的来说将传统的嵌套结构改为了平铺结构 比如,有一个模块A,依赖 B. 1
    现在有个应用依赖A,运行 npm install
    npm3会将模块B放置到与A同级目录下 而npm2会将B放置到A的依赖模块目录下


    如果有另外一个模块C,它依赖了一个不同版本的依赖模块B
    在npm3中,不同版本的模块B会放置到C的依赖模块下
    在终端中看到的目录结构是这个样子的
  2. yarn和 npm 相比有什么优势

题目6: webpack是什么?和其他同类型工具比有什么优势?

WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。

Gulp/Grunt是一种能够优化前端的开发流程的工具,而WebPack是一种模块化的解决方案,不过Webpack的优点使得Webpack在很多场景下可以替代Gulp/Grunt类的工具。
Grunt和Gulp的工作方式是:在一个配置文件中,指明对某些文件进行类似编译,组合,压缩等任务的具体步骤,工具之后可以自动替你完成这些任务。

Grunt和Gulp的工作流程

Grunt和Gulp的工作流程

Webpack的工作方式是:把你的项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个(或多个)浏览器可识别的JavaScript文件。

Webpack工作方式

如果实在要把二者进行比较,Webpack的处理速度更快更直接,能打包更多不同类型的文件。

题目7:npm script是什么?如何使用?

npm 允许在package.json文件里面,使用scripts字段定义脚本命令。

{
  // ...
  "scripts": {
    "build": "node build.js"
  }
}

上面代码是package.json文件的一个片段,里面的scripts字段是一个对象。它的每一个属性,对应一段脚本。比如,build命令对应的脚本是node build.js。
命令行下使用npm run命令,就可以执行这段脚本。

$ npm run build
# 等同于执行
$ node build.js

这些定义在package.json里面的脚本,就称为 npm 脚本。

题目8: 使用 webpack 替换 入门-任务15中模块化使用的 requriejs

github

题目9:gulp是什么?使用 gulp 实现图片压缩、CSS 压缩合并、JS 压缩合并

Gulp就是为了规范前端开发流程,实现前后端分离、模块化开发、版本控制、文件合并与压缩、mock数据等功能的一个前端自动化构建工具。说的形象点,“Gulp就像是一个产品的流水线,整个产品从无到有,都要受流水线的控制,在流水线上我们可以对产品进行管理。”

var gulp = require('gulp')
var imagemin = require('gulp-imagemin')
var minifyCSS = require('gulp-minify-css')
var uglify = require('gulp-uglify')
var concat = require('gulp-concat')
var clean = require('gulp-clean')

gulp.task('images', function () {
  gulp.src('dist/img/*').pipe(clean())//清空文件夹
  return gulp.src('src/img/*.*') // 获取图片
      .pipe(imagemin({ // 压缩图片
        progressive: true
      }))
      .pipe(gulp.dest('dist/img')) //输出图片
})

gulp.task('css', function () {
  gulp.src('dist/css/*').pipe(clean())

  return gulp.src('src/css/*.css')
      .pipe(minifyCSS()) // 压缩css
      .pipe(concat('bundle.css')) // 合并css
      .pipe(gulp.dest('dist/css'))
})

gulp.task('js', function () {
  gulp.src('dist/js/*').pipe(clean())
  return gulp.src('src/js/*.js')
      .pipe(uglify()) // 压缩js
      .pipe(concat('main.js'))
      .pipe(gulp.dest('dist/js'))
})

gulp.task('default',['images','auto','js','css'])
上一篇 下一篇

猜你喜欢

热点阅读