饥人谷技术博客

npm-npmscript-gulp-webpack

2017-08-31  本文已影响0人  liushaung

如何全局安装/卸载一个 node 应用?

当前目录下安装/卸载:
  npm install xxx / npm unistall xxx
全局下安装/卸载:
  npm install -g xxx / npm unistall -g xxx

package.json 有什么作用?

package.json定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。

通过scripts指定运行脚本命令的npm命令行缩写,比如start指定了运行npm run start时,所要执行的命令。

通过dependencies字段指定项目运行所依赖的模块,通过devDependencies指定项目开发所需要的模块。

bin项用来指定各个内部命令对应的可执行文件的位置。

main字段指定了加载的入口文件,require('moduleName')就会加载这个文件。这个字段的默认值是模块根目录下面的index.js。

config字段用于添加命令行的环境变量。

npm install --save app 与 npm install --save-dev app有什么区别?

npm install --save app:将在当前目录导入app模块,并写入'dependencies'字段,当其他人下载代码并运行npm install时会自动下载app模块。

npm install --save-dev app:将在当前目录导入app模块,并写入'devDependencies'字段,当其他人下载代码并运行npm install时不会自动下载app模块。

node_modules的查找路径是怎样的?

从当前文件目录开始查找node_modules目录;然后依次进入父目录,查找父目录下的node_modules目录;依次迭代,直到根目录下的node_modules目录。

npm3与 npm2相比有什么改进?yarn和 npm 相比有什么优势?

针对 npm2 的问题,npm3 加了点算法,直白的解释就是:npm install 时会按照 package.json 里依赖的顺序依次解析,遇到新的包就把它放在第一级目录,后面如果遇到一级目录已经存在的包,会先判断版本,如果版本一样则忽略,否则会按照 npm2 的方式依次挂在依赖包目录下。

在包版本差异化不太严重的情况下,这种构建方式会几乎把所有包放在一级目录下,很大程度上提升了效率以及节省了部分磁盘空间。

Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 — Yarn,正如官方文档中写的,Yarn 是为了弥补 npm 的一些缺陷而出现的:

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

webpack 是一个现代 JavaScript 应用程序的模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成少量的 bundle - 通常只有一个,由浏览器加载。

优势:

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 脚本。

优点:

查看当前项目的所有 npm 脚本命令,可以使用不带任何参数的npm run命令。

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

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

gulp简介:

使用gulp

上一篇 下一篇

猜你喜欢

热点阅读