8
n8n 中文网amn8n.com

自动化自托管环境的NPM包安装与更新

中级

这是一个Engineering, Building Blocks, IT Ops领域的自动化工作流,包含 7 个节点。主要使用 Set, SplitOut, N8nTrigger, ManualTrigger, ExecuteCommand 等节点。 自动化自托管环境的NPM包安装与更新

前置要求
  • 无特殊前置要求,导入即可使用
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "2039b9ae6bdd2cfe7f6a132b7dee66390e92afbc2ec29f67cafa1edf6cad8d55"
  },
  "nodes": [
    {
      "id": "cc07b2ca-27f2-4a0e-92f7-2d0fbc63ab04",
      "name": "库集合",
      "type": "n8n-nodes-base.set",
      "position": [
        -520,
        260
      ],
      "parameters": {
        "options": {
          "ignoreConversionErrors": false
        },
        "assignments": {
          "assignments": [
            {
              "id": "ab1fe8b7-6706-4f59-bc39-1f80726d2890",
              "name": "libraries",
              "type": "string",
              "value": "axios,cheerio,node-fetch"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "f5f22c1a-704b-47db-9f5e-88feb4db75b8",
      "name": "手动触发器",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -720,
        260
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "85f6ad54-a991-407e-b018-fedaa7fb3a4d",
      "name": "库数组",
      "type": "n8n-nodes-base.set",
      "position": [
        -300,
        260
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "6fb15a6a-7cda-4080-a255-10f85d188854",
              "name": "libraries",
              "type": "array",
              "value": "={{ $json.libraries.split(\",\") }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "19caae56-6cb0-4f90-a4e9-533712a09d14",
      "name": "库拆分",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -100,
        260
      ],
      "parameters": {
        "options": {
          "destinationFieldName": "library"
        },
        "fieldToSplitOut": "libraries"
      },
      "typeVersion": 1
    },
    {
      "id": "fe06a42d-21a1-474a-8442-d703f1664c68",
      "name": "库安装",
      "type": "n8n-nodes-base.executeCommand",
      "position": [
        120,
        260
      ],
      "parameters": {
        "command": "=#!/bin/bash\n\n# Get library name from variable\nLIBRARY_NAME=\"{{$json.library}}\"\n\n# Check if library directory exists\nLIBRARY_DIR=\"/home/node/node_modules/$LIBRARY_NAME\"\n\n# Check if library is already installed\nif [ ! -d \"$LIBRARY_DIR\" ]; then\n  echo \"Installing $LIBRARY_NAME...\"\n  npm install \"$LIBRARY_NAME\"\n  \n  # Verify installation\n  if [ -d \"$LIBRARY_DIR\" ]; then\n    echo \"$LIBRARY_NAME was successfully installed.\"\n  else\n    echo \"Failed to install $LIBRARY_NAME. Please check for errors.\"\n    exit 1\n  fi\nelse\n  echo \"$LIBRARY_NAME is already installed at $LIBRARY_DIR.\"\nfi\n",
        "executeOnce": false
      },
      "typeVersion": 1
    },
    {
      "id": "8b31c25c-0076-4c71-ae70-80c73d1b8220",
      "name": "计划触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -720,
        100
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a4a07417-00ce-478e-bcf7-3cc9dd0a75fa",
      "name": "实例触发器",
      "type": "n8n-nodes-base.n8nTrigger",
      "position": [
        -720,
        440
      ],
      "parameters": {
        "events": [
          "init"
        ]
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "libraries_set": {
      "main": [
        [
          {
            "node": "libraries_array",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "trigger_manual": {
      "main": [
        [
          {
            "node": "libraries_set",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "libraries_array": {
      "main": [
        [
          {
            "node": "libraries_split",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "libraries_split": {
      "main": [
        [
          {
            "node": "library_install",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "trigger_instance": {
      "main": [
        [
          {
            "node": "libraries_set",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "trigger_schedule": {
      "main": [
        [
          {
            "node": "libraries_set",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

中级 - 工程, 构建模块, IT 运维

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
中级
节点数量7
分类3
节点类型6
难度说明

适合有一定经验的用户,包含 6-15 个节点的中等复杂度工作流

外部链接
在 n8n.io 查看

分享此工作流