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
相关推荐
i听风逝夜20 分钟前
Web 3D地球实时统计访问来源
前端·后端
iMonster24 分钟前
React 组件的组合模式之道 (Composition Pattern)
前端
呐呐呐呐呢32 分钟前
antd渐变色边框按钮
前端
元直数字电路验证1 小时前
Jakarta EE Web 聊天室技术梳理
前端
wadesir1 小时前
Nginx配置文件CPU优化(从零开始提升Web服务器性能)
服务器·前端·nginx
牧码岛1 小时前
Web前端之canvas实现图片融合与清晰度介绍、合并
前端·javascript·css·html·web·canvas·web前端
灵犀坠1 小时前
前端面试八股复习心得
开发语言·前端·javascript
9***Y481 小时前
前端动画性能优化
前端
网络点点滴1 小时前
Vue3嵌套路由
前端·javascript·vue.js
牧码岛1 小时前
Web前端之Vue+Element打印时输入值没有及时更新dom的问题
前端·javascript·html·web·web前端