javascript Node.js从package.json中安装Python依赖项

bqujaahr  于 2022-12-25  发布在  Java
关注(0)|答案(3)|浏览(183)

我正在构建一个同时使用Python和NPM依赖模块的Node.JS项目。
JS模块位于package.json中,python依赖项位于文件requirements.txt中。
我希望通过运行npm installpackage.json中安装所有依赖模块(Python和Node.JS)。
这可能吗?如何做到?
先谢了!
文件如下所示。
package.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"
  }
}

requirements.txt:

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

z0qdvdin1#

您可以定义命令在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

kxeu7u2r

kxeu7u2r2#

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

omqzjyyz

omqzjyyz3#

将“preinstall”条目添加到脚本。
npmyarnpnpm将在安装dependencies和“devDependencies”之前自动执行preinstall脚本:
package.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进程中还有其他钩子脚本,比如“prepare”,这可能会很有用。脚本可以用... && npm run <script>链接起来,所以“scripts”部分可以组织成小的原子部分,并通过链接它们来构建。我使用“scripts”作为项目的构建和部署活动知识库,不仅在JS中,而且甚至在纯Python项目中,取代了make文件功能。
还可以将“package.json”与python脚本挂钩,即创建特定于项目的类似“build_project.py”脚本(或者任何适合您的名称,我使用了“make.py“和“build.py“以减少输入)的内容,在其中添加所有与python相关的内容。并从中运行npm命令。这可能比使用“package.json”中的“scripts”部分要多编码。

相关问题