尝试在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中对大写字母有命名限制?
答案 0 :(得分:2)
您可以阅读此内容[https://github.com/facebook/create-react-app/issues/2165][1] NPM软件包名称中不允许使用大写字母,这似乎是因为UNIX文件系统区分大小写,从而创建了“混乱和不可移植软件的秘诀”。
在打算作为可移植软件的库的上下文中,这非常有意义;但是,在谈论终端应用程序时,尤其是在不区分大小写的环境(例如Windows)中开发的应用程序,问题就不多了。
PR1652引入了使用validate-npm-package-name进行项目名称验证的方法,目的是避免名称在输出中显示空格的问题。
作为不同类别(例如,较少关注“可移植性”)的软件,“响应应用程序”是否应具有这些相同的限制?
例如,我不尝试制作npm软件包/库。我正在尝试使用create-react-app生成应用程序,并且需要遵循我公司中的应用程序命名约定,这要求在应用程序名称中使用大写字母。
答案 1 :(得分:0)
主要是因为NPM不允许使用大写字母。 因此,为了确保与NPM命名方案的兼容性,他们可能已经做到了。
答案 2 :(得分:0)
这可能会解决linux和OSX之间的命名问题。 Linux会区分名称相同但大写字母的目录/文件,而OSX则不会。因此,假设有人在linux中创建了一个名为WebApp的项目,另一个在webapp中创建了一个项目。如果他们试图将两者都下载到OSX平台,则其中一个项目将被覆盖。为了解决这个问题,NPX开发人员可能决定只强制将所有目录名都转换为小写,因此,如果Linux用户创建了webapp,然后尝试创建或下载WebApp,则对于需要下载这两个项目的mac用户来说,这是一种保护。 >