NPM

npm --> node.js package manage(node.js 包管理器)

npm install xxx / npm i xxx
下载安装第三方模块到当前文件夹的 node_modules 文件夹中

npm install -g xxx / npm i -g xxx
全局下下载安装模块

npm install --save / npm i -s
下载安装第三方模块到当前文件夹的 node_modules 文件夹中,并自动把模块名写入 package.json 的 dependencies

npm install --save-dev / npm i -d
下载安装第三方模块到当前文件夹的 node_modules 文件夹中,并自动把模块名写入 package.json 的 devDependencies

npm uninstall
删除模块

package.json

{
  "name": "nodejs",    // 包的名字
  "version": "1.0.0",  // 版本号
  "description": "test",   // 介绍描述
  "main": "index.js",      // 当前模块文件入口
  "dependencies": {
    // 当前模块所依赖的其他模块
  },
  "devDependencies": {},   // 当前模块所依赖的并不是运行时需要的模块
  "scripts": {   // 定义一些命令和命令所做的事
    "test": "echo \"Error: no test specified\" && exit 1" 
  },
  "author": "kofechen",
  "license": "ISC"
}

npm init
创建一个 package.json

npm init -y
不需要设置直接创建一个 package.json

npm run xxx
执行 package.json 中 script 里的某个命令

npm install
自动读取 package.json 把 dependencies 和 devDependencies 中所有的依赖下载下来

dependencies 和 devDependencies 的区别:
dependencies 里写的是运行时所需要用到的模块,而 devDependencies 里写的是开发构建或者测试等一些运行时不需要的模块。
另外,用户 require 本模块时,会将 dependencies 里的运行所依赖的模块下载下来;但是如果用户也想做一些开发构建或者测试,可以通过 npm install 将包括 dependencies 和 devDependencies 所有的模块都下载下来。

package.json 的作用:
本地的 node_modules 可以不需要上传,原因是文件可能过大,上传下载不方便。

别人想要下载并运行我们的代码时,可以在代码中找到 require 的模块,一个个在本地 install,如果模块很多的话,这样做难免很费劲。

但是有了 package.json 文件就很方便了,别人只需要在所在文件夹命令行直接执行 npm install 就可以自动读取 package.json,把 dependencies 和 devDependencies 所有依赖模块都下载下来。

require 模块查找路径

先从当前文件夹下的 node_modules 文件夹去找,找不到再去上一级文件夹查找 node_modules 文件夹并从中去找,如果找不到再逐级往上去找,直到根目录,如果还是找不到就会报错。

通过 npm install -g xxx 安装的模块,不能通过代码中的 require 得到,二者不是同一个东西,各有各的作用。

如果没有全局安装模块,只是安装到当前文件夹,可以直接到所在目录启动,或者通过 npmscripts 命令去执行启动,命令会通过 node_modules/bin 找到相应命令模块去执行,其中 node_modules/bin 中的模块文件是从 安装的模块文件夹/bin 中拷贝过来的。

模块下载速度慢

方案1:更换源版本进行下载

npm install -g xxx --registry=https://registry.npm.taobao.org  // 从别的库去下载

方案2:安装一个 nrm 快速切换源版本的工具

npm install -g nrm 
nrm ls 
nrm use taobao 
nrm use npm

切换 node.js 版本 n

可以下载 node.js 最新版本并做一些对应的新旧版本切换

npm install -g n

sudo n stable   // 下载最新版本的 node.js

npm vs => yarn

和 npm 类似的工具

但是 yarn 比 npm 快速

NPMScript 范例

在 package.json 下的 script 中加一些命令

{
  "scripts": {
    "css:autoprefixer": "postcss -u autoprefixer -r dist/css/*",
    "css:compress": "csso in.css --output out.css",
    "js:lint": "eslint src/js",
    "js:uglify": "mkdir -p dist/js && uglifyjs src/js/*.js -m -o dist/js/app.js",
    "image:imagemin": "app=imagemin-cli npm run check; imagemin src/images dist/images -p",
    "server": "browser-sync start --server --files 'dist/css/*.css, dist/js/*.js'",
    "watch": "onchange 'src/js/*.js' -- npm run css:compress",
    "start": "npm run server"
  }
}
npm run css:autoprefixer
npm start
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值