【问题标题】:node: should package.json be in the src folder or in the parent folder?节点:package.json 应该在 src 文件夹中还是在父文件夹中?
【发布时间】:2023-03-13 07:34:01
【问题描述】:

我不知道是否有推荐或标准的方法,但我看到了这样的例子:

my-project
  package.json
  src
    index.js
    [...]

像这样:

my-project
  src
    package.json
    index.js
    [...]

推荐的方法是什么?每种方法有什么优缺点吗?

【问题讨论】:

  • 我把它放在root下,这样当你进入项目时你不必先输入src来安装,其次,如果你有外面的文件,比如测试,那么你不需要另一个包。每个文件夹的 json/node_modules。

标签: node.js npm package.json setup-project conventions


【解决方案1】:

我想说要考虑三个主要的事情。

1) 您通常希望将 package.json 放在您将运行 npm 命令的目录中,例如 npm install 或在 package.json"scripts: {..}" 中定义的任何 npm 脚本。此外,npm install 会将所有模块拉入您的 package.json 旁边的 node_modules 目录中:

my-project
  node_modules
  package.json
  src
    index.js
    [...]

当然,您总是可以先将cd 放入目录中,或者使用--prefix flag,但为什么要让生活变得更艰难呢?

2) 当您在.js 文件中require() 一个第三方模块时,node.js 将在最近的node_modules 目录中查找它,从当前目录开始一直向上直到找到一。 This article 解释得很好。您可以使用此逻辑将依赖关系隔离到不同的上下文,例如 src/test/,但通常为您正在处理的整个项目使用一个通用的 node_modules 更有意义。

3) 如果您打算发布您的包,您必须将带有必要元数据的package.json 放置到该包的根目录中。当有人稍后安装你的包时,npm 会在其根目录中看到package.json

【讨论】:

    【解决方案2】:

    它应该在项目的根目录中。

    my-project
      package.json
      src
        index.js
        [...]
    

    如果你做npm init,它会放在项目的根目录

    【讨论】:

      猜你喜欢
      • 2021-07-16
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多