【问题标题】:Where is npm run looking for the scripts?npm run 在哪里寻找脚本?
【发布时间】:2018-09-11 08:42:27
【问题描述】:

当我在命令行中键入“npm run test”时,npm 会转到 package.json 的“scripts”部分并尝试在那里匹配“test”。 到目前为止一切顺利。

现在,“test”后面的行如下:"JASMINE_CONFIG_PATH=./spec/support/jasmine.json jasmine-run" 但第一部分(除了“jasmine-run”之外的所有内容)都可以在没有问题的情况下删除。 [我有一个结构相似的项目,它可以运行,所以我可以测试这些修改]

现在: npm 在哪里寻找“jasmine-run”???

因为我有一个项目,脚本提供的工作,我可以寻找它,但答案是:在 package.json 旁边的 node_modules 文件夹中是一个模块,其中 package.json 有,在“bin " 部分:

"jasmine-run": "tools/jasmine-run/jasmine-run.js",

但是,这两个项目中都存在这种精确设置。在一个中一切正常,而在另一个“茉莉花运行”中找不到。

作为答案的替代方案,我还会对 npm run 实际查找其内容的方式/位置做出适当的解释(或来源),因为这样我自己可能会找到错误。

【问题讨论】:

    标签: node.js npm jasmine


    【解决方案1】:

    当你使用 npm 运行脚本时:

    npm run-script <name>
    

    或使用类似

    的快捷方式
    npm test or npm start, 
    

    当前包目录的 bin 目录位于路径的前面。 对于您和在许多情况下可能会 ./node_modules/.bin/, 其中包含指向您的包的可执行脚本的链接。

    无论如何,您都可以在这里了解 npm 的运行方式:https://docs.npmjs.com/cli/run-script

    【讨论】:

    • .bin 文件夹是解决方案,不知为何我们的安装脚本忘记在新项目中创建链接,谢谢!!!
    • 是的,如果您必须安装在系统中的模块版本,有时也会出现问题。例如,如果您想象 moca 模块是全局和本地的,并且版本不同,那么您也可能会遇到麻烦!无论如何很高兴它有帮助!
    【解决方案2】:

    npm run 将 node_modules/.bin 添加到提供给脚本的 PATH 中。本地安装的依赖项提供的任何二进制文件都可以在没有 node_modules/.bin 前缀的情况下使用。

    检查是否可以在 node_modules/.bin 目录中找到 jasmine-run。

    参考这篇帖子:https://docs.npmjs.com/cli/run-script

    【讨论】:

      【解决方案3】:

      如果其他人在运行 create-react-app 后最终在这里寻找答案,我在这里找到了他们。

      package.json 中的行是

      "start": "react-scripts start"

      在 VSCode 中,打开“node_modules”并向下滚动到“react-scripts”。 然后打开“脚本”,它们就在那里。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-16
        • 1970-01-01
        • 2019-05-02
        • 2012-05-21
        • 2011-08-01
        • 2015-07-28
        相关资源
        最近更新 更多