ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022/03/29 Mac布置项目环境进行包管理

2022-03-30 02:02:06  阅读:163  来源: 互联网

标签:npm 03 依赖 29 yarn js --- Mac 版本


2022/03/29 Mac布置项目环境进行包管理

部署环境debugapi

使用在线编译器进行环境部署--->在线编译器remix

配置git--->拉取两个需要测试的项目

  1. 通过本地git生成ssh密钥

  2. 使用本地的ssh公钥配置到github

    1. 打开github
    2. 进入Settings -- SSH and GPG keys
    3. 查看公钥文件 --->cat ~/.ssh/id_rsa.pub
    4. 复制内容输入输入框
  3. 测试是否配置成功 --->ssh -T git@github.com

  4. 开始将项目拉取到本地 --->由于我第一次拉取的时候提示身份验证问题.所以直接yes跳过继续拉取

配置项目环境

脚本部署

线上部署

brew安装yarn ---> 使用npm安装yarn --->npm install -g yarn

使用yarn安装环境依赖 ---> 直接执行yarn

node.js的npm包管理、yarn包管理

什么是node.js?

node.js是运行在服务端的JavaScript

node.js的特性

  • 阻塞

阻塞是指:一部分node.js代码需要等到一些非node.js代码执行完成之后才能继续执行.

阻塞的特点:

阻塞的方法都是同步执行的

  • 非阻塞

非阻塞是指:node.js中所有与I/O相关的方法都提供了异步版本.可以指定回调函数

非阻塞的方法都是异步执行的

  • 事件驱动

事件产生者发布一个事件,事件订阅者在收到事件后执行某段代码

什么是npm?

npmnode.js一起安装的包管理工具

npm的组成部分:

  • 网站--->开发者查找包、设置参数、管理npm使用体验的主要途径
  • 注册表--->数据块,保存每个包的信息
  • CLI通过命令行或者终端允许,开发者通过CLInpm打交道
npm的基本命令?

查看是否安装成功:

npm -v

升级:

npm install npm -g

安装需要的模块:

npm install <Moudle Name>

安装web框架:

npm install express --->安装成功后只需要在项目中require("express")即可引用

什么是yarn?

yarn的定义:

Yet Another Resource Negotiator,一个快速、可靠、安全的依赖管理工具,一款新的JavaScript包管理工具.代码通过包(package)的方式来共享.描述包信息的文件为package.json

Yarn的工作流:

创建一个新项目--->添加/更新/删除依赖项--->安装/重新安装依赖项--->使用版本管理工具--->持续集成

由上面可以知道node.js中开发者通过CLI与包管理工具打交道.yarn也提供了相应的命令行来处理yarn包的各个方面

yarn add --->添加要在当前包中使用的包

yarn init --->初始化一个包的开发

yarn install --->安装package.json文件中定义的所有依赖项 (固只需要维护一个文件即可) --->通常简单粗暴且常用 

yarn publish --->包发不到包管理器

yarn remove --->从当前包中删除未使用的包

注意:

不使用命令行运行yarn将运行yarn install

yarn的一些指令

yarn <command> [<args>] 如果命令与本地安装的CLI匹配,Running将运行该命令

输出包的详情:

yarn <command> --verbose打印执行的详细信息

指定工作目录:

yarn --cwd <command> --->指定工作目录而不是默认的./

用户自定义脚本:

Running yarn <script> [<args>] --->运行用户定义的script --->scriptspakcage.json文件中 --->scripts是一个构建和测试的对象,例如:

{ "name": "my-package", "scripts": { "build": "babel src -d lib", "test": "jest" } }

  1. yarn run [script] [<args>] --->如果在package.json文件中定义了一个对象的话那么将会执行该对象 --->如:yarn run test --->test是定义在scripts里面的一个对象

  2. 给运行的脚本带参数 --->yarn test -o --watch此命令等价于yarn run test -o --watch

  3. 如果根据上面的json文件执行yarn run build的话那么会先执行yarn run prebuild在执行yarn build

    列出运行时脚本可用的环境变量:

    yarn run env

    列出所有可用于运行包的脚本:

    yarn run

并发和--mutex:

在同一服务器上以同一用户身份运行多个yarn实例时,通过传递全局标志--mutex,后跟fileor来确保在任何给定时间仅运行一个实例(并避免冲突)network

使用Yarn 时,默认情况下会在当前工作目录中file写入/读取互斥体文件..yarn-single-instance还可以指定备用或全局文件名.例如:

--mutex file

--mutex file:/tep/.yarn-mutex

yarn的依赖管理和版本管理
  • yarn的包依赖管理
yarn依赖类型

package.json文件是声明所有依赖项的位置,要为每个依赖项制定包名称和最低版本信息--->package.json通过nameversion来创建唯一的一个id

package.json的关键字段:

  1. name --->例如:{"name": "my-awesome-package"}这个name使用在URL当中

命名提示:

不要使用与核心Node.js模块相同的名称 不要把jsnode放在名字里 保持名称简短且具有描述性.您希望人们从名称中了解它是什么,但它也将用于require()通话. 确保注册表中没有同名的内容.

  1. version --->软件包版本

  2. description --->包用途描述,一段字符串

  3. keywords --->包管理器中搜索包时有用的字符串数组

  4. license --->许可证

指向包的链接:

  1. homepage --->文档URL

  2. bugs --->问题跟踪URL

  3. repository --->存储库,包实际代码所在的位置

维护者:

  1. author --->作者信息

  2. contributors --->贡献者

文件:

  1. files --->包含在项目中的文件

  2. main --->项目功能的主要入口

  3. bin --->项目中包含的可执行文件

  4. man --->项目相关手册页

  5. directories --->指定放置二进制文件、手册页、文档、示例等的确切位置

任务:

  1. scripts --->关联自动化任务和包的方法.举例: { "scripts": { "build-project": "node build-project.js" } }

可以被调用yarn run build-project将运行node build-project.js

某些脚本名称是特殊的.如果已定义,preinstall脚本会在安装包之前由yarn调用.出于兼容性原因,名为installpostinstallprepublish和的脚本prepare都将在软件包安装完成后调用.

start脚本默认值node server.js为:

{ "config": { "port": "8080" } } 

实际开发过程中会有很多依赖项,例如开发需要一些依赖运行不需要,yarnpackage.json可以实现这些不同情况下的包管理和版本控制,例如:

{ "name": "my-project", "dependencies": { "package-a": "^1.0.0" }, "devDependencies": { "package-b": "^1.2.1" }, "peerDependencies": { "package-c": "^2.5.4" }, "optionalDependencies": { "package-d": "^3.1.0" } }

  1. dependecies:正常依赖项,运行代码时需要的依赖项如(ReactImmutableJS

  2. devDependencies:开发依赖项,开发工作流程中的某些时候需要的依赖项,但在运行代码时不需要(例如BabelFlow)

  3. peerDependencies:对等依赖项.拥有对等依赖意味着你的包需要一个与安装你的包的人完全相同的依赖.react这对于需要react-dom安装它的人也使用的单个副本的软件包很有用.

  4. optionalDependencies:可选依赖项,如果这个里面的内容安装失败那么yarn一样会报安装成功

  5. bundledDependencies:发布包时将捆绑的包名称数组,在脚本运行时也会被打包yarn pack

捆绑依赖包的使用场景:

正常依赖项从npm注册表安装,捆绑依赖项的使用场景:

  • 想重用不是来自npm注册表或已修改的第三方库时.
  • 想将自己的项目重新用作模块时.
  • 想用你的模块分发一些文件时
  1. flat:包只允许给定依赖项的一个版本,并希望强制执行yarn install --flat则设置其为true { "flat": true }

  2. resolutions:覆盖特定嵌套依赖项的版本,通过安装yarn install --flat添加一个resolutions

.yarnc文件

功能:

允许配置其他yarn功能,yarn会将文件.yarnrc合并到文件树上

关键提示:

disable-self-update-check --->安装包时,如果CLI安装过时,Yarn将提供升级说明,可以在此处禁用此检查.

yarn依赖的版本

版本范围:

示例:

{ "dependencies": { "package-1": ">=2.0.0 <3.1.4", "package-2": "^0.4.2", "package-3": "~2.7.1" } }

里面的一些关键点:

版本区间:

在这里交集、并集、区间不做介绍,详情访问

  • 预发布标签版本:例如(3.1.4-beta.2)将仅与具有相同major.minor.patch版本的版本匹配

  • 连字符范围例如2.0.0 ~ 3.1.4 安装该版本号区间内的版本,扩展范围例如0.4 ~ 2 => >=0.4.0 && <=2.0.0的版本

  • x范围任何X,x*都可用于保留部分或全部版本未指定.作用相当于占位符,例如*扩展版本范围是>=0.0.0(任何版本),2.x是指>=2.0.0 && <3.0.0 的版本

  • 波浪号范围例如~3.1.4版本扩展范围是>=3.1.4 && <3.2.0又如:~3扩展版本范围是3.x => >=3.0.0 && <4.0.0

  • 插入号范围例如^3.1.4扩展版本范围到>=3.1.4 && <4.0.0,这里的^只控制一个小的版本.例如:0.0.2扩展版本范围到>=0.0.2 && <0.0.3.如果带了x则扩展到大版本.例如:0.x扩展版本范围到>=0.0.0 && <1.0.0

  • yarn的包版本管理

yarn.lock通过存储与包一起安装的依赖项的版本来确保包在安装之间保持一致

使用yarn.lock文件来固化依赖,无须碰这个文件,yarn会报关这个文件并在管理依赖项时修改这个文件.

yarn.lcok的特点:

yarn.lock文件是自动生成的,完全由Yarn处理,不需要直接编译它

随笔

solidity的代码可以编译会挂在服务端上,使用node.jssolidity代码作为js的第三方包进行引用.然后模拟使用js模拟触发solidity的条件对solidity代码进行调用

node.js调用的是solidity编译后提供的abi

标签:npm,03,依赖,29,yarn,js,---,Mac,版本
来源: https://www.cnblogs.com/JunkingBoy/p/16074686.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有