npm的知识要点
前端开发趋向于分散隔离,多以组件、包的形式来进行。虽然不使用node、npm、webpack、babel等工具依然可以进行前端开发,但这是远离和拒绝新技术、新理念的做法。
npm(node package manage)是基于共享理念的实践、基于node的JavaScript编写的包管理工具,官网地址:npm。
它是Node.js默认的软件包管理工具,安装Node默认就安装好了npm。Node中文网站
npm很好地解决了前端开发中的依赖问题。
以前的开发工具,每一种开发工具都有很多人在使用,但是在共享上却不方便,某个人或者团队编写的代码不能很方便地被其他人引用和加载,简单的还好,下载到本地添加到项目,可是如果下载的软件包依赖其他的,那就麻烦来了。相比以前C#在这方面做了改进,比如Nuget,但相比npm还是有距离。
与npm有相同作用的还有cnpm、yarn等。
1、安装与更新
下载Node,安装完毕后即可。安装完毕后可以查看node和npm的版本。
-
node -v
-
npm -v
正确更新npm,可以使用命令:
npm install npm -g
我试了:
npm update npm -g
更新并不报错,可是没有更新到最新的版本。
与删除其他模块一样,可以删除npm:
npm uninstall npm
2、设置代理和切换下载源
我这里是通过代理上的外网,第一步必须设置软件的代理:
-
npm config set proxy http://代理地址
-
npm config set https-proxy http://代理地址
设置为国内的下载源:
npm config set registry https://registry.npm.taobao.org/
或者先看有哪些下载源(先安装nrm):
nrm ls
选择淘宝下载源:
nrm use taobao
3、常用命令
⑴ 快速初始化项目:将会生成一个 package.json 文件并将其放置在当前目录中。
npm init -y
使用缺省的配置创建项目,可以修改package.json文件。
⑵执行脚本命令:将执行packjson包中scripts字段定义的脚本命令。
例如:新创建一个项目后在当前目录下写一个GetInfo.js
-
console.log(process.env.npm_package_name); //得到包名
-
console.log(process.env.npm_package_version);//得到版本信息
-
console.log(process.env.npm_package_config_Tips);//得到config下的属性定义值
package.json内容:
-
{
-
"name": "20230204",
-
"version": "1.0.0",
-
"description": "",
-
"main": "index.js",
-
"config":{
-
"Tips":"Knowledge points of npm"
-
},
-
"scripts": {
-
"GetInfo": "node GetInfo.js"
-
},
-
"keywords": [],
-
"author": "",
-
"license": "ISC"
-
}
执行脚本命令:
npm run GetInfo
利用执行脚本命令这个特性,可以完成很多操作,比如可以是DOS的一系列操作等。
新建一个DOS命令脚本ACopy.bat:
-
md backup
-
copy *.js backup
修改package.json文件:
-
{
-
"name": "20230204",
-
"version": "1.0.0",
-
"description": "",
-
"main": "index.js",
-
"scripts": {
-
"GetInfo": "node GetInfo.js",
-
"ACopy": "ACopy"
-
},
-
"keywords": [],
-
"author": "",
-
"license": "ISC"
-
}
运行即可完成ACopy文件内的指定操作:
npm run ACopy
这些操作可以是混合的,可以完成比较复杂的工作。
⑶使用npm安装包
先到npm网站查询具体包:
然后在项目中进行安装:
-
npm i 包名
-
或者
-
npm install 包名
npm有一定的纠错功能,就是如果你输入了i、ins、in、insta或者install都可以进行安装。
可以拷贝别的项目package.json中的生产环境和开发环境的包名到自己的项目packjson中,运行:
npm install
安装包的最新版本
npm install 包名@latest
安装指定版本号的包
npm install 包名@指定版本号
生产环境和开发环境的指定
-D 安装包到开发环境
-S 安装包到生产环境
⑷更改下载源地址
npm config set registry 地址
⑸查看npm下载源地址
npm get registry
⑹查看配置
npm config list
⑺查看项目依赖
npm ls
⑻查看全局项目依赖
npm ls -g
⑼查看帮助
-
npm 命令 --help
-
npm --help
⑽查看包信息
-
//打开包主页
-
npm home 包名
-
//查看包的代码
-
npm repo 包名
-
//查看包的详细信息
-
npm info 包名
-
//查看本地安装的指定包及版本信息
-
npm ls 包名
4、npx和nrm
⑴npx:npx 是 npm 中的一个工具,它允许你在不需要安装包的情况下运行 npm 包中的命令,它是随 npm 一起安装的,因此不需要单独安装。
⑵nrm:nrm (Node Registry Manager) 是一个 npm 源管理器,它简化了安装源【 npm 公共源和私有源】的切换。它允许你快速地在不同的源之间切换,以获得更快的下载速度,对于我们来说就是npm源和淘宝源之间的切换。
安装:在命令行中运行以下命令安装 nrm:
npm install -g nrm
更新:在命令行中运行以下命令更新 nrm:
npm update -g nrm
删除:在命令行中运行以下命令删除 nrm:
npm uninstall -g nrm
5、package-lock.json和.package-lock.json
package-lock.json 和 .package-lock.json 都是 npm 用于管理项目依赖关系的文件。
package-lock.json 文件位于项目的根目录下,是项目依赖关系的一份快照。它记录了项目依赖的所有模块的版本号和下载链接,在安装依赖时可以保证每次安装的模块版本相同,避免由于模块版本的不一致导致项目运行出错。
.package-lock.json 文件位于 node_modules 目录下,是每个依赖模块的依赖关系的快照。它记录了每个依赖模块的版本号和下载链接,在安装依赖时可以保证每次安装的模块版本相同,避免由于模块版本的不一致导致项目运行出错。
6、npm是基于node.js写的JavaScript脚本文件
npm是基于Node.js写的一系列DOS脚本和JavaScript脚本,在Node的安装目录下【C:\Program Files\nodejs\】有npm.CMD【DOS命令脚本】,它的脚本文件内容:
-
:: Created by npm, please don't edit manually.
-
OFF
-
-
SETLOCAL
-
-
SET "NODE_EXE=%~dp0\node.exe"
-
IF NOT EXIST "%NODE_EXE%" (
-
SET "NODE_EXE=node"
-
)
-
-
SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
-
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
-
SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
-
)
-
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
-
SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
-
)
-
-
"%NODE_EXE%" "%NPM_CLI_JS%" %*
这个脚本最终是执行npm-cli.js,然后是cli.js。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgafjeh
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24