node module 包名以 @ 符号为前缀是什么意思

发布时间: 2021-04-01 15:08:46 作者: 大象笔记

例如在一段 Ant Design Pro V5 的代码中看到:

import { Button, message, Input, Drawer } from 'antd';
import React, { useState, useRef } from 'react';
import { useIntl, FormattedMessage } from 'umi';
import { PageContainer, FooterToolbar } from '@ant-design/pro-layout';
import type { ProColumns, ActionType } from '@ant-design/pro-table';

其中 @ant-design/pro-table 这个包是以 @ 符号开头的,而其他包则没有这个前缀。

@ 前缀的含义

参考

https://stackoverflow.com/questions/36293481/use-of-symbol-in-node-module-names

以这种格式命名的包,遵从这个规范:

@myorg/mypackage

@组织名/包名

这种包被称为 Scoped Package。

Scope

Scope 的定义非常宽泛,一个普通开发者,或者组织都可以定义一个 Scope。

这样带来的好处就是,不用担心自己命名的包名与其他人、组织的包名冲突。

我是一名山东烟台的开发者,联系作者