setup.py 如何安装 npm 模块?

How setup.py install npm module?

我实现了一个 python Web 客户端,我想测试一下。

服务器托管在 npm 注册表中。在 运行 我的功能测试之前,服务器通过节点在本地获取 运行。

如何从我的 setup.py 脚本正确安装 npm 模块?

这是我当前的解决方案,灵感来自于此

class CustomInstallCommand(install):
    def run(self):
        arguments = [
            'npm',
            'install',
            '--prefix',
            'test/functional',
            'promisify'
        ]
        subprocess.call(arguments, shell=True)
        install.run(self)

setup(
    cmdclass={'install': CustomInstallCommand},

你非常接近,这是一个简单的功能,你可以删除“--global”选项是你只想为当前项目安装包,记住命令shell=True 可能存在安全风险

import subprocess
def npm_install(args=["npm","--global", "install", "search-index"])
  subprocess.Popen(args, shell=True)
from setuptools.command.build_py import build_py

class NPMInstall(build_py):
    def run(self):
        self.run_command('npm install --prefix test/functional promisify')
        build_py.run(self)

from distutils.command.build import build

class NPMInstall(build):
    def run(self):
        self.run_command("npm install --prefix test/functional promisify")
        build.run(self)

终于:

setuptools.setup(
    cmdclass={
        'npm_install': NPMInstall
    },
    # Usual setup() args.
    # ...
)

也看看here