前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >npm食用指南

npm食用指南

作者头像
gojam
发布2019-05-14 13:52:35
6380
发布2019-05-14 13:52:35
举报
文章被收录于专栏:gojam技术备忘录gojam技术备忘录

NPM(Node Package Manager)是前端最基础的工具之一,管理着项目的依赖。但用了这么久,始终没有单独地讨论过:npm是一个怎样的系统。

Node.JS调用模块

如果没有npm,我们可能需要const <module_name> = require('./module_name.js');

但调用次数多了,这样的代码也多了,我们需要一个包管理系统替我们管理模块引用,也就是npm。

除了管理本地包,npm也提供了快速安装需要的依赖的能力,省心。

package.json

package.json位于项目根目录,定义了项目的配置信息与依赖的模块。一个完整的package.json文件是一个可能包括name,version,author,description,keywords,repository,license,browser,engines,bugs,contributors,scripts,dependencies,devDependencies等字段的json对象。

scripts

支持自定义 npm run xxx 命令

dependencies/ devDependencies

项目依赖/项目开发时的依赖

main

项目入口文件

config

自定义scripts中命令的环境变量

npm init

npm init的作用是创建package.json文件,这个过程中终端会询问你有关这个包的信息,如果想自定义init过程,可以在用户目录下新建.npm-init.js。

代码语言:javascript
复制
const desc = prompt('description?','A new package...')//prompt用于获取用户输入

module.exports = {
  name: prompt('name?','A new project'),
  version: prompt('version?','0.1.0'),
  description: desc,
  main: 'index.js'
}

用户执行npm init后会生成包含name,version,description,main的pair(name:value)的package.json。

npm install

使用频率最高的命令,npm install的作用是安装package.json中定义的依赖。但也可以直接用npm install <package>安装某个依赖,依赖可以是文件夹,压缩文件,url,git仓库,可以用<name>@<version>或<name>@<tag>(通常是latest)指定版本。

package-lock.json

npm5才有package-lock.json,其作用是锁定依赖结构。它详细记载了每个包的版本号,安装源,内容hash,而它的json结构与node_modules的目录结构一致。这个文件保证了在任何地方执行npm install能够得到相同结果。

版本管理

semver(语义化)规范

semver指版本号格式为MAJOR.MINOR.PATCH,MAJOR指不兼容更新,MINOR指兼容的更新,PATCH指修复BUG。

npm update

升级MINOR版本

npm install <package>@<version>

升级或降级大版本

npm uninstall <package>

卸载依赖包

npm scripts

在package.json里也介绍了,定义scripts字段可以执行脚本。脚本执行时./node_modules/.bin/被添加到环境变量PATH,可以直接调用项目下安装的命令行包。需要参数时需要先在命令后加上" -- "再传入参数,如"npm run clean -- --mode="all" "。此外,脚本还可以访问process.env对象获得运行时信息。

npx

命令行包指的是可以在终端中直接调用的包,比如vue-cli和webpack。他们保存在node_modules/.bin目录中,如果不是全局安装,需要在调用的时候加上目录。

而npx的作用是,省去加上目录的烦恼,我们只需要npx <command>就可以执行脚本。

除此之外,npx支持直接执行远程二进制包(npm源,GitHub gist等),更可以跳过nvm选择node版本执行命令,如npx node@10 -e "console.log(process.version)"。

npm配置

npm config

npm config ls -l

查看npm所有配置

npm config set <key> <value>

<key>可选proxy, https-proxy(代理),registry(npm源),package-lock(是否默认生成package-lock),save(是否在npm install后保存包为dependencies,npm5开始默认为true)

npm config delete <key>

删除配置

npmrc

.npmrc文件可以存在于项目根目录,用户根目录,全局配置目录($PREFIX/etc/npmrc,可以用npm config get globalconfig输出),npm内配置文件(/path/to/npm/npmrc),优先级从前往后。

内容总结自互联网,主要参考:https://juejin.im/post/5ab3f77df265da2392364341,感谢作者。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年2月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Node.JS调用模块
  • package.json
  • npm init
  • npm install
  • package-lock.json
  • 版本管理
    • semver(语义化)规范
      • npm update
        • npm install <package>@<version>
          • npm uninstall <package>
          • npm scripts
            • npx
            • npm配置
              • npm config
                • npm config ls -l
                • npm config set <key> <value>
                • npm config delete <key>
              • npmrc
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档