【问题标题】:Why can npm run babel-node from script but not as npm exec?为什么 npm 可以从脚本运行 babel-node 但不能作为 npm exec?
【发布时间】:2021-07-30 01:09:27
【问题描述】:

在 lerna monorepo 中,babel 仅安装在根包级别。 从root/packages/packageA 运行 npm exec babel-node 时,失败并显示:

npm 错误!无法确定要运行的可执行文件

从同一目录,运行 npm run test,其中 test 设置为 babel-node,打开 babel-cli。

即为什么 npm 在作为脚本运行时可以解析到根 node_modules 的 bin 的路径,而直接从终端运行时不能解析?

编辑:

https://github.com/bishonen/newproject/tree/master/packages/someapp

当运行 npm run test-babel 时,它将从包含 package.json 的 3 个目录中的任何一个目录中运行。 运行 npm exec babel-node 时,它​​只会从根目录运行。

【问题讨论】:

    标签: node.js npm lerna


    【解决方案1】:

    npm@7.7.0 或更高版本将支持对 npm run 和 npm exec 的工作区支持。详情见here

    您可以使用功能更新npm

    npm i -g npm@7
    

    我试了一下,它在你的代码中有效 https://github.com/bishonen/newproject/tree/master/packages/someapp

    我使用npmv7.12.0

    【讨论】:

    • 谢谢,但这也只适用于根级别。添加了一个 github repo 以澄清上述情况
    猜你喜欢
    • 1970-01-01
    • 2016-04-01
    • 2021-10-31
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    相关资源
    最近更新 更多