乐趣区

关于前端:整理总结npm常用命令与操作篇

npm 的全称是 (Node Package Manager),是伴随 NodeJS 一起装置的包治理和散发工具,它很不便让 JavaScript 开发者 下载、装置、上传以及治理曾经装置的包

先阐明下 上面会用到的几个变量:

  • <name>|<pkg> 模块名
  • <version> 版本号
  • <version range> 版本范畴
  • <@scope> 作用域。所有 npm 软件包都有一个名称。某些软件包名称也有作用域。

一、装置配置 Node 和前言

# 查看 npm 的版本 
$ npm -v  //6.4.0 << 装置胜利会返回版本号

# 查看各个命令的简略用法
$ npm -l 
 
# 查看 npm 命令列表
$ npm help

# 查看 npm 的配置
$ npm config list -l

二、npm init 创立模块

npm init用来初始化生成一个新的 package.json 文件。它会向用户发问一系列问题,如果感觉不必批改默认配置,一路回车就能够了。

尾缀带 -f(代表 force)、-y(代表 yes),则跳过发问阶段,间接生成一个新的package.json 文件,不带尾缀的话,默认有发问阶段。

以上创立好之后就能够在 Package.json 间接看了 还能够在外面批改更新。

三、npm set 设置环境变量

$ npm set init-author-name 'my name jerry'
$ set init-author-email '12345@qq.com'
$ set init-author-url 'http://yourdomain.com'
$ npm set init-license 'MIT'
执行了以上的批改,此时 Package.json 并没有发生变化

// 设置后执行 init 才是真正批改胜利
$ npm init

四、npm search 搜寻模块

npm search命令用于搜寻 npm 仓库,它前面能够跟字符串,也能够跟正则表达式。

五、npm list 查看模块

# 以后我的项目装置的所有模块
$npm list

#列出全局装置的模块 带上[--depth 0] 不深刻到包的支点 更简洁
$ npm list -g --depth 0

四、npm install 装置模块

根本用法

# 读取 package.json 外面的配置单装置  
$ npm install 
// 可简写成 npm i

# 默认装置指定模块的最新 (@latest) 版本
$ npm install [<@scope>/]<name> 
//eg:npm install gulp

# 装置指定模块的指定版本
$ npm install [<@scope>/]<name>@<version>
//eg: npm install gulp@3.9.1

# 装置指定指定版本范畴内的模块
$ npm install [<@scope>/]<name>@<version range>
//eg: npm install vue@">=1.0.28 < 2.0.0"

# 装置指定模块的指定标签 默认值为(@latest)
$ npm install [<@scope>/]<name>@<tag>
//eg:npm install sax@0.1.1

# 通过 Github 代码库地址装置
$ npm install <tarball url>
//eg:npm install git://github.com/package/path.git

配置选项阐明:

全局装置 -g | -global //eg: npm i -g gulp 或者 npm i gulp -g #这是默认设置,除非 - D 或 - O 存在 #装置并将被增加到 package.json 的 dependencies 区。-P | –save-prod #**(生产阶段的依赖)** #装置并将被增加到 package.json 的 dependencies 区 -S | –save //eg: npm i gulp –save 或 npm i gulp -S #**(开发阶段的依赖)** #装置并将被增加到 package.json 的 devDependencies 区。-D | –save-dev //npm i gulp –save-dev 或 npm i gulp -D #**(可选阶段的依赖)** #装置并将被增加到 package.json 的 optionalDependencies 区 -O | –save-optional #装置模块的确切版,而不是应用 npm 的默认 semver range 运算符 -E | –save-exact //npm i gulp –save-exact 或 npm i gulp -E #装置并将被增加到 \`bundleDependencies\` 列表中 -B | –save-bundle #模块不论是否装置过,npm 都要强制重新安装 -f|–force //eg:npm install sax –force _// 补充:所有模块都要强制重新安装,那就删除 \`node\_modules\`,从新执行 \`npm install\`_ $ rm -rf node\_modules _// 或者手动去删除 node\_modules 目录_ $ npm install #避免保留到 \`dependencies\` –no-save #报告装置情况而不是真的装置 –dry-run

五、npm uninstall 卸载模块

# 卸载以后我的项目或全局模块 
$ npm uninstall <name> [-g] 

eg: npm uninstall gulp --save-dev  
    npm i gulp -g

卸载后,你能够到 /node\_modules/ 目录下查看包是否还存在,或者应用以下命令查看:npm ls 查看装置的模块

六、npm update 更新模块

# 降级以后我的项目或全局的指定模块
$ npm update <name> [-g] 
//eg: npm update express 
      npm update express -g

七、npm link 援用模块

# 援用依赖 有些包是全局装置了,在我的项目外面只须要援用即可。$ npm link [<@scope>/]<pkg>[@<version>]
//eg: 援用   npm link gulp gulp-ssh gulp-ftp
//eg: 解除援用 npm unlink gulp

# 援用模块 自己用得少没深刻说了 用得上时可去翻文档例子
$ npm link (in package dir)

八、npm run 执行脚本

package.jsonscripts 字段,能够用于指定脚本命令,供 npm 间接调用。npm run会创立一个 Shell,执行指定的命令。

两个命令简写,starttest 属于非凡命令,能够省略 run, 其余的都得带上 run。

npm run的参数。

  • 如果不加任何参数,间接运行,会列出 package.json 外面所有能够执行的脚本命令

  • 可配置参数 格局是加上两个连词线(–)
    —package.json 文件 — “scripts”: {“test”: “mocha test/”} ——- 终端 ——- $ npm run test _\– anothertest.js_ _\# 等同于间接执行_ $ mocha test/ anothertest.js

外部变量

---package.json 文件 ---
{
    "name": "npm_test",
    "version": "1.0.0",
    "config": {"reporter": "xunit"},
    "script":{
        "bundle": "mkdir -p build/$npm_package_version/",
        //$npm_package_version 读的是外层 "version" 的值,同理 $npm_package_name 读的是外层 "name" 的值
        "test": "mocha test/ --reporter $npm_package_config_reporter"
        //$npm_package_config_reporter 读的是 "config" 里的 "reporter"
    }
}

pre-post- 两个钩子(hook)

npm 会先查看有没有定义 prelint 和 postlint 两个钩子,如果有的话,就会
先执行npm run pre- 命令名,而后执行npm run 命令名,最初执行npm run post- 命令名

---package.json 文件 ---
"scripts": {
    "lint": "eslint --cache --ext .js --ext .jsx src",
    "test": "karma start --log-leve=error karma.config.js --single-run=true",
    "pretest": "npm run lint",
    "posttest": "echo'Finished running tests'"
  }
  
------- 终端 -------
$ npm run lint
// 间接执行 npm run lint 完结

$ npm run test
// 因为有定义了两个钩子 pretest、posttest。// 所以先执行 npm run pretest
// 而后执行 npm run test
// 最初执行 npm run posttest

九、npm publish 公布模块

# 未注册 申请注册一个用户 间接在 https://www.npmjs.com/ 注册一样
$ npm adduser
// 执行后 填写几个问题 Username、Password、Email

#已注册
$ npm login 

#公布
$ npm publish

Mart 一下 仅供参考 欢送更正补充 Thanks

退出移动版