1. 首页 > 经验 >

npm更新包_npm更新包的命令

linux下nodejs安装以及如何更新到的版

此试题主要考察对NPM的高级应用。具体问题包括:

可以使用nvm进行node的版本管理与更新也可以使用n贴一个以前用的PPA源,不过貌似作者很久也没更新了node.js-ysudoapt-"xxy" : "git://",getupdatesudoapt-getinstallnodejsnpm

npm更新包_npm更新包的命令npm更新包_npm更新包的命令


npm中package.json详解

npm view vue 或 npm v vue

什么是Node.js的模块(Module)?在Node.js中,模块是一个库或框架,也是一个Node.js项目。Node.js项目遵循模块化的架构,当我们创建了一个Node.js项目,意味着创建了一个模块,这个模块的描述文件,被称为package.json。

"lat" : "latest", // 当前

npm模块的完整的版本号一般是【主版本 . 次要版本 . 补丁版本】,一般情况下,次要版本号发生改变的话,表示程序有重大更新。

实际使用的区别点主要如下:

--se-dev

或—se

首先需要说明的是 Dependencies一词的中文意思是依赖和附属的意思,而dev则是 dlop(开发)的简写。

所以它们的区别在 package.json 文件里面体现出来的就是,使用 --se-dev 安装的 插件,被写入到 devDependencies 域里面去,而使用 —se 安装的插件,则是被写入到 dependencies 区块里面去。

那 package.json 文件里面的 devDependencies 和 dependencies 对象有什么 区别 呢?

devDependencies 里面的插件只用于开发环境,不用于生产环境,而 dependencies 是需要发布到生产环境的 。

比如我们写一个项目要依赖于jQuery,没有这个包的依赖运行就会报错,这时候就把这个依赖写入dependencies

对于 全局模式安装的包(通过 -g 来安装的包,将包安装成全局可用的可执行命令,并不意味着任何地方都可以通过 require() 来引用它) :它会通过 bin 字段配置,将实际脚本链接到 Node 可执行目录下,例如

必须要打成全局包才可以使用该命令,打成全局包的命令

npm install . -g

或者

符号链接和package.json中的bin属性

参考:

npm安装node包时怎么显示安装进度

{"name": "gulp-my-plugin",

brew 下卸载 node,npm 所安装的包不会被删除。----------npm的包安装分为本地安装(local)、全局安装(global)两种本地安装:npm install xxx 安装到命令行所在目录的node_module目录。全局安装:npm install xxx -g 安装到 \AppData\Roaming\npm\node_modules目录。---使用brew的常用命令brew install node . 该命令执行后,自动装好node和npm。brew upgrade node 更新nodebrew uninstaNPM中可以只运行一个命令来安装多个模块、获取包的信息、安装特定版本的软件包、列出依赖项等等有用的提示和技巧ll node 卸载node

NPM初级技术员考试试题

此试题主要考察对NPM的安装和使用的熟悉程度。具体问题包括:

NPM初级技术员考试试题

NPM是一款非常流行的包管理工具,被广泛应用于现代化的项目中。随着程序员需求的增长,对这个工具的需求也变得越来越复杂。实现这一过程需要拥有扎实的知识基础和良好的编码技能。为了更好地理解和掌握NPM的知识,下面将介绍NPM初级技术员考试试题。

试题一:NPM安装及使用

NPM的使用场景有哪些?

NP接下来就是遇到的问题了,每个问题都包含报错信息,请善用 ctrl + f 搜索,下文报错中涉及到自己包名的我都替换为了 your-package 。M的基本命令有哪些?

如何查看已安装的包和版本?

在回答这个试题时,需要详细讲述每个问题的具体解决方案,并且结合对实际应用的体验,简单介绍该解决方案产生的影响。

试题二:包管理与依赖项

此试题主要考察对NPM包管理的理解和对依赖项的控制能力。具体问题包括:

如何在项目中添加新的依赖项?

如何更新某个模块的版本?

如何使用package.json文件来管理依赖项?

如何移除依赖项?

在回答这个试题时,需要讲述NPM的包管理原理并详细描述每个问题的解决方案。这有助于开发人员更好地掌握依赖项的使用和控制能力。

试题三:NPM工具的高级应用

如何在本地NPM注册表中安装私有包?

如何将一个包发布到NPM公共库中?

如何通过NPM运行脚本?

如何配置NPM以及包的参数?

回答此类问题需要具有更高的实践经验和分析能力。开发人员需要能解决在生产环境遇到的一些困难情况,也需要了解如何优化NPM的工作方式以提高开发效率和代码质量。

结论

发布npm包时遇到的一些坑

举个栗子,可选依赖包就像程序的插件一样,如果存在就执行存在的逻辑,不存在就执行另一个逻辑。

我感觉发布过程中的坑让我踩的不多了...在这里记录一下

"description": "a delightfully fruity coffee varietal",

先简单记录一下发布流程

初始化包

登录npm

发布包

这个是注册后没有验证邮箱,登录自己邮箱找到对应的邮件确认就好了。注意别选错了,注册 npm 时会发给你两个邮件,我当时就是眼瞎没有看到第二个。如果验证邮件过期的话登录自己的 npm 主页重新发一个就好了。

你的包和别人的包重名了,npm 里的包不允许重名,所以去 npm 搜一下,改个没人用的名字就可以了。

后面已经注明了,输入 npm adduser 重新登录就可以了,过程和 npm login 一样,这个问题在你切换了 npm 源之后或登录过期后都有可能发生。

这个是你的源设置成第三方源的时候才有可能发生,比如设置了淘宝源就 可能 会导致该问题。只要把源改回默认的就可以了,如下:

如果npm上已经有了不少和你的包名类似的包,就会出现这个问题,在 package.json 中修改你的包名就可以了

怎么在命令行中查看nodejs和npm的版本号

"foo" : "1.0.0 - 2.9999.9999", // 指定版本范围

查看nodejs版本:node -v。

这个当你的包名为 @your-name/your-package 时才会出现,原因是当包名以 @your-name 开头时, npm publish 会默认发布为私有包,但是 npm 的私有包需要付费,所以需要添加如下参数进行发布:

查看npm安装的版本:npm -v。

常用命令:

npm install moduleNames:安装Node模块。

安装完毕后会产生一个node_modules目录,其目录下就是安装的各个node模块。

npm view moduleNames:查看node模块的package.json文件夹。

npm list:查看当前目录下已安装的node包。

注意事项:Node模块搜索是从代码执行的当前目录开始的,搜索结果取决于当前使用的目录中的node_modules下的内容。$ npm list parseable=true可以目录的形式来展现当前安装的所有node包。

npm :查看帮助命令。

npm view moudleName dependencies:查看包的依赖关系。

npm view moduleName reitory.:查看包的源文件地址。

npm view moduleName engines:查看包所依赖的Node的版本。

npm folders:查看npm使用的所有文件夹。

npm rebuild moduleName:用于更改包内容后进行重建。

npm outdated:检查包是否已经过时,此命令会列出所有已经过时的包,可以及时进行包的更新。

npm update moduleName:更新node模块。

npm uninstall moudleName:卸载node模块。

一个npm包是包含了package.json的文件夹,package.json描述了这个文件夹的结构。访问npm的json文件夹的方法如下:

$ npm json 此命令会以默认的方式打开一个网页,如果更改了默认打开程序则可能不会以网页的形式打开。

发布一个npm包的时候,需要检验某个包名是否已存在

$ npm search packageName。

npm init:会你创建一个package.json文件,包括名称、版本、作者这些信息等。

npm root:查看当前包的安装路径;npm root -g:查看全局的包的安装路径。

npm EINTEGRITY 错误全解析

如何安装NPM?

该错误的常见格式如下,我这边为了方便查看按内容断行

其中第三行和第五行是始终一样的,我们直接关注第五行和第七八行即可

第五行wanted代表package-lock中存储的校验值,是期望下到的包校验值是这个

第七八行but got代表实际下到的包所计算出的校验值,如果七八行中的计算结果不能包含第五行的校验值,就会报错

请注意,不同的错误原因产生的错误信息也会不同,但是句式是一样的,不同的错误信息将对应不同的解决方案

注意got后面没有sha-1的版本。这个问题在更新的npm上不存在,因为更新的npm会同时产生两种算法的校验值供校验,提供向下兼容

解决方法也比较简单,尝试执行下列指令,如果个修复缓存不行,就执行第二个清空缓存,重新创建即可

同一个包在不同仓库中有不同的内容,这npm link在使用私有仓库时会比较常见,很多公司会选则在私有仓库上传带源码的版本,公共仓库上传编译好的版本。这里我们假设同一个包在淘宝镜像和私有仓库中有不同版本,校验码也不同,则在以下场景下会产生错误:

这种情况的典型现象是,错误信息中,校验算法能够重合,但是校验结果不同,你可以拿着wanted后面的校验值去lock文件中搜索,从而确定是哪个包出了问题,然后比对不同仓库中该包的内容是否不同,如果不同,就可以确认是仓库不同导致的问题。

修复的方法也比较简单,如果是同一台电脑切换仓库导致的问题,你可以选择切回原来的仓库,或删除lock文件用新仓库的数据重建lock。如果是多台电脑仓库不同的问题,则需要统一使用的仓库,并将换过仓库的电脑上的全局缓存清除,用新仓库重建缓存

你最近没有干奇怪的事情,没有切换仓库,lock也没人动过,但是用install重建依赖时就是不行,则有可能缓存和lock文件中至少有一个抽风了,最的解决办法即按种中的方法修复或清空缓存,如果还不行,就只能删除lock,用install直接重建了,但删除lock会导致依赖版本改变,需谨慎作

几种npm依赖包管理分享

foo = null

本文主要给大家介绍了关于你应该知道的几类npm依赖包管理,npm 是node.js 里的包管理器,是一个命令行工具,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。

npm 目前支持以下几类依赖包管理:

dependencies

devDependencies

peerDependencies

optionalDependencies

bundledDependencies / bundleDependencies

如果你想使用哪种依赖管理,那么你可以将它放在package.json中对应的依赖对象中,比如:

"devDependencies": {

"fw2": "^0.3.2",

"grunt": "^1.0.1",

"webpack": "^3.6.0"

},

"dependencies": {

"gfoo = nullulp": "^3.9.1",

"hello-else": "^1.0.0"

},

"peerDependencies": { },

"optionalDependencies": { },

"bundledDependencies": []下面我们一一来看:

dependencies

应用依赖,或者叫做业务依赖,这是我们最常用的依赖包管理对象!它用于指定应用依赖的外部包,这些依赖是应用发布后正常执行时所需要的,但不包含测试时或者本地打包时所使用的包。可使用下面的命令来安装:

npm install packageName --sedependencies是一个简单的JSON对象,包含包名与包版本,其中包版本可以是版本号或者URL地址。比如:

"bar" : ">=1.0.2 <2.1.2",

"baz" : ">1.0.2 <=2.3.4",

"boo" : "2.0.1", // 指定版本

"qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0",

"asd" : "", // 指定包地址

"til" : "~1.2", // 最近可用版本

"elf" : "~1.2.3",

"elf" : "^1.2.3", // 兼容版本

"two" : "2.x", // 2.1、2.2、...、2.9皆可用

"thr" : "", // 任意版本

"thr2": "", // 任意版本

"dyl" : "file:../dyl", // 本地地址

"xyz" : "git+ssh://git@github:npm/npm.git#v1.0.27", // git 地址

"fir" : "git+ssh://git@github:npm/npm#semver:^5.0",

"wdy" : "git+",

}}devDependencies

开发环境依赖,仅次于dependencies的使用频率!它的对象定义和dependencies一样,只不过它里面的包只用于开发环境,不用于生产环境,这些包通常是单元测试或者打包工具等,例如gulp, grunt, webpack, moca, coffee等,可使用以下命令来安装:

npm install packageName --se-dev举个栗子:

{ "name": "opia-waza",

"version": "1.2.3",

"devDependencies": {

"coffee-script": "~1.6.3"

},

"scripts": {

"prepare": "coffee -o lib/ -c src/waza.coffee"

},

"main": "lib/waza.js"

}prepare脚本会在发布前运行,因此使用者在编译项目时不用依赖它。在开发模式下,运行npm install, 同时也会执行prepare脚本,开发时可以很容易的测试。

至此,你理解了--se和--se-dev的区别了吗?

peerDependencies

同等依赖,或者叫同伴依赖,用于指定当前包(也就是你写的包)兼容的宿主版本。如何理解呢? 试想一下,我们编写一个gulp的插件,而gulp却有多个主版本,我们只想兼容的版本,此时就可以用同等依赖(peerDependencies)来指定:

"version": "0.0.1",

"peerDependencies": {

"gulp": "3.x"

}}当别人使用我们的插件时,peerDependencies就会告诉明确告诉使用方,你需要安装该插件哪个宿主版本。

通常情况下,我们会在一个项目里使用一个宿主(比如gulp)的很多插件,如果相互之间存在宿主不兼容,在执行npm install时,cli会抛出错误信息来告诉我们,比如:

npm ERR! peerinvalid The package gulp does not satisfy its siblings' peerDependencies requirements!

├── gulp-my-plugin@0.0.1

└── gulp@3.9.1OK, N!

注意,npm 1 与 npm 2 会自动安装同等依赖,npm 3 不再自动安装,会产生!手动在package.json文件中添加依赖项可以解决。

optionalDependencies

可选依赖,如果有一些依赖包即使安装失败,项目仍然能够运行或者希望npm继续运行,就可以使用optionalDependencies。另外optionalDependencies会覆盖dependencies中的同名依赖包,所以不要在两个地方都写。

try {

var foo = require('foo')

var fooVersion = require('foo/package.json').version

} catch (er) {

}if ( notGoodFooVersion(fooVersion) ) {

}// .. then later in your program ..

if (foo) {

foo.doFooThings()

}bundledDependencies / bundleDependencies

打包依赖,bundledDependencies是一个包含依赖包名的数组对象,在发布时会将这个对象中的包打包到最终的发布包里。如:

{"name": "fe-weekly",

"description": "ELSE 周刊",

"version": "1.0.0",

"main": "index.js",

"devDependencies": {

"fw2": "^0.3.2",

"grunt": "^1.0.1",

"webpack": "^3.6.0"

},

"dependencies": {

"gulp": "^3.9.1",

"hello-else": "^1.0.0"

},

"bundledDependencies": [

"hello-else"

]}执行打包命令npm pack, 在生成的fe-weekly-1.0.0.tgz包中,将包含fw2和hello-else。 但是值得注意的是,这两个包必须先在devDependencies或dependencies声明过,否则打包会报错。

npm安装包时会自动安装该包依赖的其他包么

卸载 package(包)如果你不想打开 package.json 文件并从那里手动删除依赖项,则可以使用以下命令将其删除:

npm install xxx 安装到命令行所在目录的node_module目录。全局安装。----------npm的包安装分为本地安装(local)、全局安装(global)两种本地安装:nnpm ERR! peerinvalid Peer gulp-cli-users@0.1.4 wants gulp@~2.3.0运行命令npm install gulp-my-plugin --se-dev来安装我们插件,我们来看下依赖图谱:pm install xxx -g 安装到 ;AppData;Roaming;npm;node_modules目录。---使用brew的常用命令brew install node . 该命令执行后,自动装好node和npmbrew 下卸载 node,npm 所安装的包不会被删除

详解如何构建一个Angular6的第三方npm包

"fw2",

不废话直接上教程

1.建立项目

ng new projectname 2.创建第三方库

项目创建完毕,依赖安装完毕后

# libraryname : 第三方包名字

# prefix : 组件前缀(如 nz-zorro 的组件前都是 nz-xxx)

cd projectname

ng g library libraryname --prefix prefix 3.查看项目目录

多出一个projects目录,目录里就是刚才generate的第三方library

可以看到实际和 ng new 出的项目无多大别,第三包的依赖直接加入package.json中,然后依赖的Module按照常规方法加入到src/app.module.ts即可.

4.愉快的构建自己的模块 图中是模块的导出文件,应该会去自动去扫描的,如果引用时遇到问题直接从public_api.ts导出然后重新打包即可

5.构建第三方包{"dependencies" :{

这一步需要注意的是,打包前修改package.json中的项目信息,起码version信息需要修改

#切到根目录

cd 项目根目录路径

ng build mylibrary 看一眼打出的包

6.发布包

#切到目录

cd dist/mylibrary

#发布

npm publish

这里npm publish相关的可以自行百度

script方式引入npm包

之前公司组件库npm ERR! peerinvalid Peer gulp-cli-config@0.1.3 wants gulp@~3.1.9都是放在npm上,然后使用的时候通过npm使用,但是这样的话,如果组在查阅相关资料时,有人提到npm5将哈希算法从SHA-1换成了SHA-512,导致原先npm4创建的全局缓存中的包全部无法校验通过,这种条件情境下,错误信息是件有更新,其他项目使用到组件的时候,也必须更新然后重新发包发布,系统很多的时候会很麻烦,于是想到是不是可以将打包好的js通过script的方式引入,这样只需要更新静态资源就可以了,不需要每个系统升级更新重新发布

注:上面的名称a是会去全局中寻找a的变量,所以打包之后的文件需要挂载在window.a变量中,即将打包之后的common.js文件中的module.exports替换成window.a即可

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 12345678@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息