【问题标题】:Why can't React project name contain capital letters?为什么 React 项目名称不能包含大写字母?
【发布时间】:2019-12-03 14:41:16
【问题描述】:

我尝试在 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 中对大写字母有命名限制?

【问题讨论】:

标签: javascript reactjs npm


【解决方案1】:

你可以阅读这个https://github.com/facebook/create-react-app/issues/2165 NPM 包的名称中不允许使用大写字符,这似乎是因为 unix 文件系统区分大小写,这会造成“混淆和不可移植软件的秘诀”。

这在旨在作为可移植软件的库的上下文中非常有意义;但是,当谈到终端应用程序时,尤其是在 Windows 等不区分大小写的环境中开发的应用程序时,就没有那么多了。

PR1652 引入了使用 validate-npm-package-name 进行项目名称验证,假设是为了避免输出在名称中显示空格的问题。

“React 应用程序”作为不同的(例如:较少关注“可移植性”)类别的软件,是否应该有这些相同的限制?

例如,我不想制作 npm 包/库。我正在尝试使用 create-react-app 来生成应用程序,并且我需要遵循我公司的应用程序命名约定,这需要在应用程序名称中使用大写字母。

【讨论】:

  • 所以?它永远不会被重新打包到 npm 组件中。
【解决方案2】:

这主要是因为 NPM 不允许大写字母。 因此,为了确保与 NPM 的命名方案兼容,他们可能已经这样做了。

【讨论】:

    【解决方案3】:

    这可能会调和 linux 和 OSX 之间的命名问题。 Linux 区分具有相同名称但使用大写字母的目录/文件,而 OSX 则没有。所以想象一下有人在 linux 中创建了一个名为 WebApp 的项目和另一个名为 webapp 的项目。如果他们尝试将两者都下载到 OSX 平台,则其中一个项目将被覆盖。为了解决这个问题,NPX 开发人员可能决定只强制所有目录名称为小写,因此如果 linux 用户创建了 webapp,然后尝试创建或下载 WebApp,那么对于需要下载这两个项目的 mac 用户来说,将会受到保护。

    【讨论】:

    • OSX 允许大写字母,而 Windows 文件和文件夹名称不区分大小写
    • 取决于您选择的文件系统,我相信。 OSX 可以有区分大小写或不区分大小写的文件系统。
    猜你喜欢
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 2014-02-28
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多