尝试在 React 中创建新项目“newRecipeApp”时收到以下消息。
npx: installed 91 in 29.359s
Could not create a project called "newRecipeApp" because of npm naming restrictions:
* name can no longer contain capital letters
这是什么原因?为什么 npm 中对大写字母有命名限制?
尝试在 React 中创建新项目“newRecipeApp”时收到以下消息。
npx: installed 91 in 29.359s
Could not create a project called "newRecipeApp" because of npm naming restrictions:
* name can no longer contain capital letters
这是什么原因?为什么 npm 中对大写字母有命名限制?
您可以阅读此https://github.com/facebook/create-react-app/issues/2165 NPM 包的名称中不允许使用大写字符,这似乎是因为 unix 文件系统区分大小写,这创建了“混乱和不可移植的软件”。
这在用作便携式软件的库的上下文中非常有意义;然而,在谈到终端应用程序时,并不是那么多,尤其是那些在不区分大小写的环境(如 Windows)中开发的应用程序。
PR1652 引入了使用 validate-npm-package-name 的项目名称验证,假设是为了避免输出在名称中显示空格的问题。
“React 应用程序”作为一个不同的(例如:不太关注“可移植性”)类别的软件,是否应该有这些相同的限制?
例如,我不是在尝试制作 npm 包/库。我正在尝试使用 create-react-app 来生成一个应用程序,我需要遵循我公司的应用程序命名约定,该约定要求在应用程序名称中使用大写字母。
这主要是因为 NPM 不允许大写字母。因此,为了确保与 NPM 的命名方案兼容,他们可能已经这样做了。
这可能会调和 linux 和 OSX 之间的命名问题。Linux 区分同名但大写字母的目录/文件,而 OSX 不区分。因此,想象一下有人在 linux 中创建了一个名为 WebApp 的项目和另一个名为 webapp 的项目。如果他们尝试将两者都下载到 OSX 平台,则这些项目之一将被覆盖。为了解决这个问题,NPX 开发人员可能决定只强制所有目录名称为小写,因此如果 linux 用户创建了 webapp 然后尝试创建或下载 WebApp,对于需要下载这两个项目的 mac 用户来说,将会有一个保护。