Nodejs 为什么前端界这么喜欢用 @ 号做为包名前缀?有什么好处或者目的吗?
Nodejs 为什么前端界这么喜欢用 @ 号做为包名前缀?有什么好处或者目的吗?
null
带 多一级不会和别人重复,比如我有个包叫 hello, 但全局的 hello 已经有人占了,我就可以发在自己名下叫做 /hello
最近配置 .npmrc,设置了 registry 为淘宝源,又设置另一个私有包到私有源,发现不带 @ 它就走淘宝源,给私有包加了 @ 再配置,就可以了。这个私有包走私有源,其他包走淘宝源。
@ 代表是 npm 上的一个组织,也有命名空间的作用
避免 npm 包命名冲突。
比如 facebook 上传了个叫 react 的包,其他所有开发者都不能够使用 react 这个名字了。
https://docs.npmjs.com/cli/v7/using-npm/scope
这个叫 scope
Scopes are a way of grouping related packages together, and also affect a few things about the way npm treats the package.
Each npm user/organization has their own scope, and only you can add packages in your scope. This means you don’t have to worry about someone taking your package name ahead of you. Thus it is also a good way to signal official packages for organizations.
好像是谷歌先这么干的
一切源于模仿…
什么叫喜欢用 @ ,这不是 npm 中的 scope 定义方式吗,通过这帖子发现不少“知其然不知其所以然”的人
yep
因为这是 npm 推荐的方式 https://docs.npmjs.com/cli/v7/using-npm/scope
这位兄台,莫非你对所有东西都“知其然且知其所以然”?你从来不碰到疑问?碰到不了解的事情你都不问问题??
前端工程化,@表示 scope
至于为啥用 @表示就不清楚了。我只能说 convention 千千万,能找到个常用符号表示就说明这个 convention 是还算是值得一学一用的。
前端还喜欢 包 版本
npm i lodashlatest
就是取 的 At 意思吧, 然后 / orgname 表示用户的, 互联网上大家用惯了, weibo twitter
还喜欢用
这个解释的不错
在Node.js及前端框架中,@号作为包名前缀的流行使用主要归因于npm(Node Package Manager)的命名空间和模块组织策略,其好处和目的如下:
原因
- 命名空间:@符号用于区分不同组织或用户发布的包,避免命名冲突。例如,@angular/core 表示 Angular 官方团队发布的核心包,而 @testing-library/react 则表示 testing-library 组织提供的 React 相关包。
- 模块路径简化:在大型项目中,使用@符号作为路径别名可以简化模块引用路径,提高代码可读性。例如,通过配置webpack的alias,可以将
import { SomeModule } from '../../../../some/module/path';
简化为import { SomeModule } from '@/some/module/path';
。
示例
以下是一个webpack配置示例,展示了如何使用@符号作为路径别名:
// webpack.config.js
module.exports = {
resolve: {
alias: {
'@': path.resolve(__dirname, 'src')
}
}
};
在配置后,项目中的任何文件都可以通过@
符号来引用src
目录下的模块,大大简化了路径引用。
总之,@号作为包名前缀在Node.js前端界的广泛使用,既符合npm的命名规范,又能够提升代码的组织性和可读性。