当前位置: 首页 > wzjs >正文

网站专题策划方案书培训学校网站系统

网站专题策划方案书,培训学校网站系统,企业软文怎么写,Wordpress企业电商主题排行深入学习npm npm详解npm的组成-registrynpm的组成-websitenpm的组成-clinpm-confignpm-initnpm-installnpm-startnpm-uninstallnpm-version其他命令 再谈registrypackage.json配置基本结构必填字段可选字段依赖管理其他配置完整配置 node_modules其他 npm详解 我们在前面安装N…

深入学习npm

  • npm详解
    • npm的组成-registry
    • npm的组成-website
    • npm的组成-cli
      • npm-config
      • npm-init
      • npm-install
      • npm-start
      • npm-uninstall
      • npm-version
      • 其他命令
  • 再谈registry
  • package.json配置
    • 基本结构
    • 必填字段
    • 可选字段
    • 依赖管理
    • 其他配置
    • 完整配置
  • node_modules
  • 其他

npm详解

我们在前面安装Nodejs的时候提到过npmNodejs的一个包管理工具,后来还介绍了一些npm的替代品,如cnpmyarnpnpm,本节我们来深入了解一下,npm到底是个什么东西?

npm的组成-registry

作为一个程序员,无论你的发展方向是什么,你肯定知道世界上最伟大的网站github。之所以说它伟大,唯一的原因就是,它提供了无数开源的代码。

开源,一直以来都是推动软件开发和IT行业的重要力量。

如果没有开源,那么现在也不会有这么多程序员,你所使用的javajavascript等编程语言都是开源的。开源,也就是开放源码,你可以任意阅读它的源码。

github本身不提供代码,它的代码由无数开发者上传,供大家学习,我们从github下载代码之后,需要自行修改,使其融入我们的项目。

这样一来就会产生一个问题,比如作为一个前端开发者,我只需要前端相关的项目、插件或者工具;并且我们希望能够很方便地将这些代码进行下载并应用到我们的项目中,这显然是github做不到的。

我们需要一个以语言为界限,将针对不同语言的开源代码上传到不同的“github”,这里的“github”就可以理解为我们的npm

不仅仅是Nodejs,像PythonJava都有类似的包管理工具。

开发者根据不同的开发语言的模块化以及不同的包管理工具,将代码以特定的格式进行约束,然后上传到名为“hub”的地方,在npm中,这个“hub”被称为registry

registrynpm的核心,所有与nodejs相关的代码都被上传到registry中,我们称这些代码为package 包npm就是node package managerNodejs的包管理者。

npm默认的registry为https://registry.npmjs.org。

npm的组成-website

有了这些包,我们就可以去使用它们,但是这里就产生了一个问题,我怎么知道有哪些包可以使用?

遇事不决问百度,但是百度也有不会的时候。比如你需要一个工具来发送http请求,百度只会告诉你,工具的名字是什么,但是它不会告诉你该如何去获取它。

npm为我们提供了一个网站用于查找包,这个网站其实就是npm的官网。
在这里插入图片描述
我们可以在这上面搜索各种各样的包,如axios
在这里插入图片描述
由于这些包是由全世界的开发者上传,因此出现同名或者相似名字是很常见的事情,我们要学会区分是不是我们真正想要的。

  • 首先可以看名字是否和我们查找的一样;
  • 第二可以看作者或者组织是否是官方;
  • 最后可以查看下载量,当你在两个类似功能的包直接犹豫不决的时候,选下载量大的准没问题。

我们点击第一个搜索结果,进入详情页。
在这里插入图片描述

在这里你会看到很多有用的东西:

  1. 包的名字;
  2. 包的介绍,使用Markdown编写,一般是包的快速入门教程;
  3. 包的源码;
  4. 包的依赖,这个包可能还使用了其他的包;
  5. 包的历史版本;
  6. 如何安装包;
  7. 包的github地址;.
  8. 官网地址;
  9. 周下载量;
  10. 当前版本;
  11. 最近一次更新时间。

npm的组成-cli

cli是命令行接口的意思,命令行是计算机中用来直接与计算机进行交互的窗口。

就是类似于这玩意的:
在这里插入图片描述
你的电脑可以会有其他版本的命令行,它们功能基本都是一样的。

对于初学者来说,我们只需要学会一些常用的命令即可。

npm-config

文档

用于配置npm。

npm-init

文档

用于初始化项目,其实就是创建一个package.json文件,该文件可以用来配置项目相关信息。

npm-install

文档

用安装包,该命令应用场景较多:

  1. npm install <package-name>用于在当前目录安装某个包;
  2. npm install <package-name> -g用于在全局安装包;
  3. npm install用于将当前目录下package.json中配置的所有包进行安装。

install可以简写为i-g表示全局安装,会安装在npm的目录下的node_modules中,如果不加-g会默认安装在当前目录的node_modules

你也可以通过在包名后面加上@version的方式指定需要安装的版本号。

npm-start

文档

用于启动命令,也可以写成npm run start,命令在package.json中配置:

{"scripts": {"start": "node foo.js"}
}

当你拿到一个项目的时候,你应该先去package.json文件中去查找scripts配置项,看看应该用哪个命令进行启动。

npm-uninstall

文档

卸载某个包。

npm-version

文档

查看npm的版本。

其他命令

npm还有很多命令,如用于上传自己包的命令,用于登录npm账号的命令等,如果需要可以在官网进行阅读。

再谈registry

除了npm,我们还介绍了yarnpnpm

那岂不是说开发者需要同步开发这两个工具对应的包呢?

实际上并不是,这两个工具仅仅是提供了安装包的方法,它们本身同步了npm的仓库,在一方面缓解npm服务器的压力,提升安装速度;另一方面它们在本地管理包的方式有所不同,在磁盘空间使用和读取效率上会有所提升。

目前国内用的比较多的是阿里开发的cnpm,它为国内开发者提供了非常迅速的下载源,并且每间隔十分钟就同步一次官方仓库,保证了代码的同步性。

package.json配置

package.jsonNode.js项目的核心配置文件,用于定义项目的元数据和依赖关系。它是npm工作的基础,几乎所有npm命令都依赖此文件。

基本结构

{"name": "my-project","version": "1.0.0","description": "A brief description of the project","main": "index.js","scripts": {"start": "node index.js","test": "echo \"Error: no test specified\" && exit 1"},"keywords": ["example", "nodejs"],"author": "Your Name","license": "ISC","dependencies": {"express": "^4.18.2"},"devDependencies": {"nodemon": "^2.0.22"}
}

必填字段

  • name
    • 项目名称,必须是唯一的(在 npm 仓库中)。
    • 只能包含小写字母、数字、连字符(-),不能有空格。
    • 示例:“name”: “my-project”
  • version
    • 项目版本号,遵循 语义化版本规范(SemVer)。
    • 格式:MAJOR.MINOR.PATCH(如 1.0.0)。
    • 示例:“version”: “1.0.0”

可选字段

  • description
    • 项目的简短描述,用于 npm 仓库展示。
    • 示例:“description”: “A simple Node.js project”
  • main
    • 项目的入口文件(如 index.js),当其他模块引用此包时会加载该文件。
    • 示例:“main”: “index.js”
  • scripts
    • 定义自定义脚本命令,可通过 npm run

依赖管理

  • dependencies
    • 生产环境依赖,项目运行时必需的包。
  • devDependencies
    • 开发环境依赖,仅用于开发阶段(如测试、构建工具)。

这里提一点,你在通过npm安装的时候,如npm i axios会默认将最新版本的axios安装,并加入到dependencies,但是你通过npm i axios -g安装的包不会加到这里,-g表示全局安装,一般只用于安装工具包,如rimrafcnpm等。

还有就是这两个配置只是给开发者看的,并不是说你把axios放在devDependencies里面它在生产环境就无法使用,仅仅是从规范上来区分包的类型。

可以通过命令参数决定将包放入哪个选项:

# dependencies
npm i --save axios;
npm i -S axios;# devDependencies
npm i --save-dev axios;
npm i -D axios;

其他配置

  • repository
    • 项目代码仓库信息。
  • homepage
    • 项目主页 URL。
  • bugs
    • 问题反馈地址(如 GitHub Issues)。
  • engines
    • 指定项目运行的 Node.js 或 npm 版本范围。
"engines": {"node": ">=14.0.0","npm": ">=7.0.0"
}
  • files
    • 指定发布到 npm 仓库时包含的文件(白名单)。

完整配置

{"name": "my-cli-tool","version": "2.0.0","description": "A command-line tool for Node.js","main": "index.js","bin": {"my-cli": "./bin/cli.js"},"scripts": {"start": "node index.js","test": "jest"},"keywords": ["cli", "nodejs", "tool"],"author": "Jane Doe <jane@example.com>","license": "MIT","repository": {"type": "git","url": "git+https://github.com/jane/my-cli-tool.git"},"dependencies": {"commander": "^10.0.0"},"devDependencies": {"jest": "^29.5.0"},"engines": {"node": ">=14.0.0"}
}

node_modules

node_modulesNode.js项目中用于存放依赖包的目录,是npm安装依赖时的默认输出目录。了解 node_modules的结构、作用和管理方式,对于开发高效的Node.js应用至关重要。

node_modules是一个树形结构,顶级目录是package.json中定义的直接依赖,子依赖会嵌套在各自的目录中。

我们在有package.json的目录下运行npm i时,会自动下载并安装相关包,这些包都被安装在node_modules中,开发者不应该去修改node_modules中的内容。
在这里插入图片描述
这张图告诉你,node_modules占很大内存。因此,我们在将项目提交到git时,应该忽略这个目录,当其他开发者同步代码之后,由对方自行安装,这也能避免由于操作系统差异导致的启动问题。

其他

npm是开发nodejs项目至关重要的工具,任何一位前端开发者都无法避免与其打交道。因此,熟悉其使用方式和常见的命令至关重要。

http://www.dtcms.com/wzjs/558085.html

相关文章:

  • 中山网站设计素材nginx wordpress php7
  • 建设银行网站修改建设网站项目概述
  • 爱游戏app下载官方网站用动易建设网站教程
  • 官方网站的重要性上海关闭娱乐场所通知
  • 旅游电子商务网站开发制作个人网站如何提高访问量
  • 教育培训机构网站源码柳州网站优化公司
  • 手机网站编程wordpress静态化nginx
  • 有做车身拉花的网站吗动易 网站文章
  • 如何撰写网站建设方案如何在网站后台添加商品
  • 怎么给网站添加代码宝塔wordpress 404配置
  • 盘锦建设工程信息网站查域名注册
  • 手机网站 侧边栏导航深圳做二维码网站建设
  • 怎么仿制别人的网站wordpress如何使用模板
  • 网站按内容分可以分为pageadmin如何做网站
  • 郑州专业手机网站制作iis怎么让添加的网站没有端口
  • 如何在凡科上做网站电子邮件免费注册
  • 浙江平台网站建设制作企业网站每年续费吗
  • 区块链技术做网站竞价网站策划
  • 怎么评价网站的好坏设计方案介绍
  • wordpress百度网站地图网站备案提示
  • 辽宁建设工程信息网评标专家入库seo入门书籍
  • 怎么让网站页面自适应广州十大高端网站建设公司
  • 找施工员在哪个网站上找百度推广的渠道有哪些
  • 北京品牌网站定制公司刚做的网站 搜不到
  • 天津企朋做网站的公司网站开发四个重点
  • 专业做家具的网站有哪些新网企业邮箱
  • 广州微网站建设怎么样免费设计手写签名
  • 机械公司网站源码门户网站开发方案
  • 大华伟业网站建设网站建设需要考虑哪些因素
  • 旅游景点网站模板计算机应用专业(网站开发)