manage.py runserver 可以执行 npm 脚本吗?

Min*_*oon 5 django reactjs webpack webpack-dev-server webpack-2

我正在开发一个React用于前端和Django后端的 Web 应用程序。我Webpack用来监视 React 应用程序的更改和捆绑代码。

问题是我必须同时运行两个命令,一个用于 React,另一个用于 Django:

webpack --config webpack.config.js --watch
./manage.py runserver
Run Code Online (Sandbox Code Playgroud)

有没有办法自定义runserver命令来执行 npm 脚本,比如npm run start:dev?当您使用 Node.js 作为后端平台时,您可以执行类似npm run build:client && npm run start:server.

McA*_*bra 0

您不应该弄乱内置管理命令,但您可以创建自己的管理命令: https: //docs.djangoproject.com/en/1.10/howto/custom-management-commands/

在你的地方,我会留runserver在原处并创建一个来运行你的自定义(npm在本例中)脚本,即使用os.execvp.

理论上,您可以运行两个并行的子进程,一个将执行例如django.core.management.execute_from_command_line,第二个将运行您的脚本。但这会使使用工具变得pbd不可能(这使得工作变得非常困难)。

我的做法是利用 Docker 和 Docker compose。然后,当我使用docker-compose up -d数据库服务时,npm 脚本、redis 等在后台运行(runserver单独运行,但这是另一个主题)。