【问题标题】:Save gulp plug-ins in project在项目中保存 gulp 插件
【发布时间】:2016-02-18 09:47:36
【问题描述】:

我正在尝试使用 Gulp 自动创建 ZIP 文件以分发我的 PHP 项目。我对 npm 还不是很熟悉。

我已经意识到我需要几个插件(到目前为止,gulp-asvn 和 gulp-zip)。我已经按照官方网站提供的说明安装了它们,例如:

npm install --save-dev gulp-asvn

我的 node_modules 目录已经和实际的代码库一样大,而且作为一个内部开发工具,如果没有必要,我不想将它提交到我的 Subversion 存储库中。

有没有办法告诉 npm 需要哪些包并有可能立即安装它们,所以当其他人签出代码时配置他们的环境不会有太多问题?在 PHP 的 Composer 中,您将拥有一个 composer.json 文件,但我不确定 package.json 是否等同于该文件,并且 npm install 无论如何都没有创建它。

【问题讨论】:

  • 我们使用npm init 安装package.json,其中包括节点模块运行所需的依赖项。您可以列出其中所需的所有依赖项,然后只需执行npm install 即可一次安装package.json 中列出的所有依赖项。
  • @Sumit 所有答案都很有用,但您的评论是关键。如果您还没有package.json,则--save-dev 参数无效。我对自动创建所有文件的composer require 感到困惑。如果您发布正确的答案,我将很乐意接受。
  • 确定我会框定答案并发布。请提出修改建议以改进它。

标签: node.js npm gulp


【解决方案1】:

TLDR 如果您的依赖项在 package.json 文件中命名,您可以。 用户只需告诉npm 即可安装它们:npm install

长篇大论

假设你有你的package.json 文件。

现在可以了

npm install --save-dev gulp-asvn

这将安装gulp-asvn 包并将其添加到package.json 文件中作为devDependencies

如果您忽略检查文件中的node_modules,用户只需说npm 即可安装所有依赖项,您就可以了。

npm install

此命令查看package.json 内部,解析所有依赖项和开发依赖项,从npm 注册表中拉下它们并安装它们。

【讨论】:

  • 我怀疑丢失的位是npm init,因为据我所知--save-dev 没有保存任何东西。我会检查并报告。
  • npm init 将创建您的 package.json 文件。您也可以手动创建它。
【解决方案2】:

参考作曲家文档 -

这个想法并不新鲜,Composer 受到 node 的 npm 和 ruby​​ 的 bundler 的强烈启发。

您可以使用此命令确保忽略要提交到 svn repo 的 node_modules 文件夹。

  svn propedit svn:ignore . 

您的默认文本编辑器将弹出,您可以根据您的文件夹结构添加 node_modules 目录以忽略。

现在你知道 npm '可能' 不会出现很长时间了。为了安全起见,您可以为 node_modules 创建另一个 repo。

您还可以在 package.json 文件中区分并单独保存您的依赖项和开发依赖项。

  npm install

附: - 上面的命令足以让其他人配置他们的环境。如果没有,您可以将环境变量用于 api 键和其他环境相关常量。

【讨论】:

    【解决方案3】:

    如果文件夹中有文件package.json,节点模块将安装在该文件夹中。 package.json 有很多关于作者、git 存储库等的字段。

    这里有一个重要的字段,就是dependencies:,它基本上列出了运行这个项目所需的节点模块。当npm install somePackage --save-dev运行时,它会尝试找到package.json并将其作为依赖保存在其中,同时下载模块。

    您可以通过编写npm init 并列出依赖项中的所有节点模块来创建package.json

    "dependencies": {
      "gulp-asvn": "^0.4.5",
      "....." : ".."
    },
    

    然后运行npm install

    您还可以通过单独运行npm install --save-dev gulp-asvn 和其他包来保存依赖项。然后它将添加到您的package.json

    【讨论】:

      【解决方案4】:

      项目依赖项存储在package.json 文件中,但npm install --save-dev 不会创建该文件 如果它不存在,甚至警告它不存在并且--save-dev开关不会有任何影响。 (从这个意义上说,它的行为与 Composer 不同,后者只是自动创建其 composer.json 文件。)

      不是可再发行 JavaScript 库的项目的最低配置可以像这样小:

      {
        "private": true
      }
      

      【讨论】:

        猜你喜欢
        • 2014-01-29
        • 1970-01-01
        • 1970-01-01
        • 2016-03-19
        • 1970-01-01
        • 1970-01-01
        • 2014-12-01
        • 1970-01-01
        • 2016-10-26
        相关资源
        最近更新 更多