在 Python venv 下移动 node_modules 位置

Moving node_modules location under a Python venv

我有一个 Python venv 来开发 Django 应用程序,我使用 babel 来转译我的 javascript。

目前,我在 Python venv 下工作时使用 nodeenv -p 安装 node.js

如果我的项目根目录下有 node_modulespackage.json 文件夹,一切正常,但它打乱了项目文件夹结构。

我宁愿 node_modulesvenv 下:

project_folder
   |
   |- venv
         |- node_modules
         package.json

甚至:

project_folder
   |
   |- venv
         |- node
               |- node_modules
               package.json

如果我将 package.json 放入 venv 并从那里执行 npm install,则 npx babel 仅在我位于 venv 时有效,而不是项目的根目录。

运行 npx babel 从项目的根目录给我:

npx: installed 1 in 0.655s
You have mistakenly installed the `babel` package, which is a no-op in Babel 6.
Babel's CLI commands have been moved from the `babel` package to the `babel-cli` package.

    npm uninstall -g babel
    npm install --save-dev babel-cli

See http://babeljs.io/docs/usage/cli/ for setup instructions.

我怎样才能在 venv 文件夹下拥有 node_modules 并能够从项目文件夹中的任何位置使用 npx babel

This question 是相关的,但我看不出如何调整 nodeenv 的答案。

我最终发现 NODE_PATH 设置为 <myproject>/venv/lib/node_modules

如果我将我的 package.json 文件放在 venv/lib/ 然后 运行 npm install 从这个目录,我可以从项目中的任何文件夹使用 npx babel .