【问题标题】:Node.js install Python dependencies from within package.jsonNode.js 从 package.json 中安装 Python 依赖项
【发布时间】:2022-12-24 01:02:55
【问题描述】:

我正在构建一个同时使用 Python 和 NPM 依赖模块的 Node.JS 项目。

Node.JS 模块位于package.json 内,python 依赖项位于文件requirements.txt 内。

我想通过运行 npm installpackage.json 中安装所有依赖模块(Python 和 Node.JS)。

这可能吗?如何实现?

提前致谢!

这些文件如下所示。

包.json:


{
  "name": "app",
  "version": "1.0.0",
  "description": "Trial app",
  "main": "bin/index.js",
  "scripts": {
    "dev": "npm install",
    "start": "node app.js",
    "test": "jest --forceExit "
  },
  "keywords": [
    "AI",
    "Blockchain",
    "Decentralized"
  ],
  "dependencies": {
    "peerjs": "^1.3.2",
    "redis": "^3.1.2",
    "socket.io": "^4.1.2",
    "socket.io-client": "^4.1.2",
    "wrtc": "^0.4.7"
  },
  "devDependencies": {
    "@babel/core": "^7.16.7",
    "supertest": "^6.1.6"
  }
}

要求.txt:


Django==2.2.21
djangorestframework==3.7.7
django-rest-swagger
coreapi

【问题讨论】:

  • npm install && pip install -r requirements.txt

标签: javascript python node.js


【解决方案1】:

您可以定义要在 package.json 的 "scripts" 部分中运行的命令。那里的每个脚本都可以使用 npm run [scriptname] 运行。

所以你可以这样做(&& 在第一个命令之后运行另一个命令)

"scripts": {
    "install": "npm install && pip -r requirements.txt",
    "dev": "npm install",
    "start": "node app.js",
    "test": "jest --forceExit "
  }

然后运行npm run install

【讨论】:

    【解决方案2】:

    "dev": "npm install"替换为"dev": "npm install & pip install"

    【讨论】:

      【解决方案3】:

      向脚本添加“预安装”条目。

      npmyarnpnpm将在安装dependencies和'devDependencies`之前自动执行preinstall脚本:

      包.json:

      {
        "scripts": {
          "preinstall": "echo 'Installing Python Dependencies...' && pip install -r requirements.txt && pip install -r subproject/requirements.txt"
        },
        ...
      }
      

      要同时安装 npm 和 python 依赖项,只需运行:

      $> npm install
        Installing Python Dependencies...
      

      此外,npm 进程中还有其他钩子脚本,如“准备”,可能会有用。脚本可以与 ... && npm run <script> 链接,因此“脚本”部分可以组织成小的原子部分,并通过链接它们来构建。我使用“脚本”作为项目的构建和部署活动知识库,不仅在 JS 中,甚至在纯 Python 项目中都取代了 make 文件功能。

      也可以将“package.json”挂钩到 python 脚本中,即创建类似“build_project.py”的脚本(或任何适合你的名称,我已经使用“make.py”和“build.py” less typing) 特定于项目,在那里添加所有与 python 相关的东西,然后从它运行 npm 命令。它可能比使用“package.json”中的“脚本”部分编码更多。

      【讨论】:

        猜你喜欢
        • 2016-08-02
        • 1970-01-01
        • 2016-09-09
        • 1970-01-01
        • 1970-01-01
        • 2020-12-27
        • 1970-01-01
        • 1970-01-01
        • 2015-07-25
        相关资源
        最近更新 更多