npm 模块不会在没有此类文件的情况下执行,但它确实存在
Posted
技术标签:
【中文标题】npm 模块不会在没有此类文件的情况下执行,但它确实存在【英文标题】:npm module will not execute with no such file, but it does exists 【发布时间】:2018-09-06 00:37:18 【问题描述】:运行 Windows 10 和 git bash。
我正在尝试运行 webdriver io npm 模块。它显然存在于我的系统上,但是当我尝试运行它时,它会说没有这样的文件。我对 npm 本身没有任何问题。
任何想法有什么问题吗?
usery@AUS-LT-384 MINGW64 ~/github/e2e-temp (master)
$ lr ./node_modules/.bin/wdio
-rw-r--r-- 1 user 1049089 23 Mar 27 09:15 ./node_modules/.bin/wdio
user@AUS-LT-384 MINGW64 ~/github/e2e-temp (master)
$ ./node_modules/.bin/wdio wdio.conf.js
./node_modules/.bin/wdio: line 1: ../webdriverio/bin/wdio: No such file or directory
user@AUS-LT-384 MINGW64 ~/github/e2e-temp (master)
$ npm -v
5.6.0
【问题讨论】:
./node_modules/.bin/wdio:第 1 行:../webdriverio/bin/wdio:没有这样的文件或目录显示 ./node_modules/.bin/wdio 是可执行的,但它搜索../webdriverio/bin/wdio。你有 ../webdriverio/bin/wdio 吗? 不,为什么要一个父级执行? --help 有用吗? 不,同样的问题。 【参考方案1】:您可能是通过另一个系统(可能是 linux)或 WSL(Linux 的 Windows 子系统:Windows 上的 Bash)安装了这个包;这样 npm 可执行文件(/node_modules/.bin
目录内容)无法运行。
首先通过WSL
卸载它来重新安装包:
npm uninstall wdio
然后通过git-bash
安装:
npm install wdio
应该可以解决这个问题。如果不尝试通过 Windows 终端( CMD 或 PowerShell )安装包。这样在./node_modules/.bin/
目录中,您应该会在wdio
文件旁边看到一个wdio.cmd
文件,并且您的可执行文件已准备就绪:
user@AUS-LT-384 MINGW64 ~/github/e2e-temp (master)
$ ./node_modules/.bin/wdio -v
v4.12.0
【讨论】:
不,它不能是 WSL。它必须在 Windows 中是本机的。以上不行,Window 不遵循 npm 模块的路径。 @dman,如果 Windows 可以在.bin
目录中的 wdio
文件旁边找到 wdio.cmd
文件,它将遵循该路径。并且应该通过 CMD 或 PowerShell 或 git-bash 安装包以生成此文件。您应该首先通过WSL
卸载软件包,然后通过git-bash
或CMD
或PowerShell
重新安装它【参考方案2】:
如果您使用的是 5.x.x,请先安装 cli
npm i --save-dev @wdio/cli
【讨论】:
【参考方案3】:如果您使用 package.json,您可以包含脚本并使其更易于运行
"scripts":
"tests": "wdio wdio.conf.js"
并运行它们
npm run tests
【讨论】:
以上是关于npm 模块不会在没有此类文件的情况下执行,但它确实存在的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有“dist”的情况下在 NPM 上发布 TypeScript 模块?
在没有Webpack的情况下从NPM模块解析Sass @import
如何在没有 npm 的情况下手动从 github 下载和导入 node 模块,并将其安装在 React Native 项目中?