npm详解

npm(Node Package Manager)是 Node.js 的标准包管理器。随同Node.js一起安装的包管理工具,它让开发者能够方便地共享和重用代码,可以说是Node.js生态系统中非常重要的一部分。

通过npm,开发者可以轻松地安装、更新、发布以及管理Node.js的包和依赖项。它允许开发者从npm仓库中下载别人编写的包到自己的项目中,并且可以管理这些包的版本依赖关系。此外,开发者也可以将自己编写的包发布到npm仓库,让其他开发者使用。

npm不仅仅用于Node.js的包管理,它也被广泛应用于Web前端开发,因为大多数现代的前端开发项目都使用npm来管理JavaScript的依赖包。

总而言之,npm是一个强大的工具,为Node.js和Web前端开发提供了便利的包管理功能,极大地促进了代码共享和项目协作。

npm 管理项目依赖的下载。

安装所有依赖

如果一个项目有一个 package.json 文件,通过运行

javascript 复制代码
npm install

安装单个包

你还可以安装特定的包,通过运行

javascript 复制代码
npm install <package-name>

此外,从 npm 5 开始,此命令将 <package-name> 添加到 package.json 文件依赖。 在版本 5 之前,你需要添加标志 --save

通常你会看到更多的标志被添加到这个命令中:

  • --save-dev 安装并添加条目到 package.json 文件开发依赖
  • --no-save 安装但不添加条目到 package.json 文件依赖
  • --save-optional 安装并添加条目到 package.json 文件可选依赖
  • --no-optional 将阻止安装可选依赖

也可以使用标志的简写形式:

  • -S:--save
  • -D:--save-dev
  • -O:--save-optional

devDependencies 和 dependencies 之间的区别在于前者包含开发工具,如测试库,而后者与生产中的应用打包在一起。至于 optionalDependencies 的不同之处在于,依赖的构建失败不会导致安装失败。 但是你的程序有责任处理依赖的缺失

更新包

更新也很容易,通过运行

javascript 复制代码
npm update

npm 将检查所有包是否有满足你的版本控制约束的更新版本。

你也可以指定要更新的单个包:

javascript 复制代码
npm update <package-name>

版本控制

除了普通下载,npm 还管理 版本控制,因此你可以指定任何特定版本的软件包,或者要求比你需要的版本更高或更低的版本。

javascript 复制代码
npm install <package-name>@<version>

运行任务

package.json 文件支持指定命令行任务的格式,可以使用

javascript 复制代码
npm run <task-name>

{

"scripts": {

"watch": "webpack --watch --progress --colors --config webpack.conf.js",

"dev": "webpack --progress --colors --config webpack.conf.js",

"prod": "NODE_ENV=production webpack -p --config webpack.conf.js"

}

}

javascript 复制代码
$ npm run watch
$ npm run dev
$ npm run prod
相关推荐
zhougl9961 小时前
html处理Base文件流
linux·前端·html
花花鱼1 小时前
node-modules-inspector 可视化node_modules
前端·javascript·vue.js
HBR666_1 小时前
marked库(高效将 Markdown 转换为 HTML 的利器)
前端·markdown
careybobo3 小时前
海康摄像头通过Web插件进行预览播放和控制
前端
杉之4 小时前
常见前端GET请求以及对应的Spring后端接收接口写法
java·前端·后端·spring·vue
喝拿铁写前端4 小时前
字段聚类,到底有什么用?——从系统混乱到结构认知的第一步
前端
再学一点就睡4 小时前
大文件上传之切片上传以及开发全流程之前端篇
前端·javascript
木木黄木木5 小时前
html5炫酷图片悬停效果实现详解
前端·html·html5
请来次降维打击!!!6 小时前
优选算法系列(5.位运算)
java·前端·c++·算法
難釋懷6 小时前
JavaScript基础-移动端常见特效
开发语言·前端·javascript