指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
今天看vue-cli文档,发现了下面的这段话 vue-cli 改为了 @vue/cli,这两个npm有什么区别呢?npm包前面加@是什么意思呢?

Vue CLI 的包名称由 vue-cli 改成了 @vue/cli。 如果你已经全局安装了旧版本的 vue-cli (1.x 或 2.x),你需要先通过 npm uninstall vue-cli -g 或 yarn global remove vue-cli 卸载它。

查了下官网,npm包前面加@,代表scopes相关的包,可以理解为作用域(范围)包,作用域使我们可以创建与其他用户或组织创建的包同名,而不会发生冲突。

A scope allows you to create a package with the same name as a package created by another user or Org without conflict.

作用域名称是介于@和斜线之间的所有内容:

The scope name is everything between the @ and the slash:

// “npm” scope:
@npm/package-name
// “npmcorp” scope:
@npmcorp/package-name
为什么需要有作用域包
npm包一个诟病就是包名很容易被占用的问题,占用后用其他人就不能用了。而作用域包类似于创建了一个命名空间,不同的命名空间,可以使用相同的包名

作用域的命名不是谁便就能用的,只有两种可以使用:自己的用户名、自己创建的组织名

注意:必须先注册一个npm用户帐户,然后才能发布用户作用域的npm软件包。此外,要发布组织作用域的软件包,您必须创建一个npm用户帐户,然后创建一个npm Org(组织)。