指尖上的记忆指尖上的记忆
首页
  • 基础
  • 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
npm包名前带@和不带@的区别

在 npm 中,包名前带 @ 和不带 @ 的区别如下:


✅ 1. 带 @ 符号的包(作用域包 Scoped Package)

格式:@scope/package-name

例如:

@vue/compiler-sfc
@nestjs/core

意义:

  • @scope 是一个命名空间(通常是组织或用户)。
  • 用于将包组织在一起,便于管理和发布。
  • 私有包 和 大组织内部的包 常用这种形式。
  • 可以发布到 npm 或私有 npm registry。

示例:

npm install @vue/compiler-sfc

✅ 2. 不带 @ 的包(普通包)

格式:package-name

例如:

axios
lodash
vue
express

意义:

  • 这是 npm 的传统命名方式。
  • 所有开发者都可以发布这样的包,只要名字不冲突。

示例:

npm install axios

🚩 补充说明

形式举例是否必须公开是否支持私有
package-nameaxios, vue是否(要私有需加作用域)
@scope/name@vue/compiler-sfc否✅ 是(可私有)

📦 私有包示例(@your-org/internal-lib):

{
  "name": "@your-org/internal-lib",
  "version": "1.0.0",
  "private": true
}

如你公司内部有多个团队,可以这样划分作用域:

  • @company/frontend-utils
  • @company/backend-core
  • @company/shared-config