在Windows 10上运行Svelte-“sirv”不被识别为命令

在Windows 10上运行Svelte-“sirv”不被识别为命令,windows,npm,svelte,Windows,Npm,Svelte,我想从苗条开始。我找到的所有指南都列出了两个命令: npm安装 npm运行开发 但是,在Windows 10中,在完全卸载NodeJS后重新安装Node 12.16.3 LTS和NPM 6.14.4,根据,一旦我点击NPM run dev,我会出现以下错误: $ npm run dev > svelte-app@1.0.0 dev C:\Users\Matthew\Desktop\SvelteTest > rollup -c -w 'rollup' is not recogniz

我想从苗条开始。我找到的所有指南都列出了两个命令:

npm安装 npm运行开发 但是,在Windows 10中,在完全卸载NodeJS后重新安装Node 12.16.3 LTS和NPM 6.14.4,根据,一旦我点击NPM run dev,我会出现以下错误:

$ npm run dev

> svelte-app@1.0.0 dev C:\Users\Matthew\Desktop\SvelteTest
> rollup -c -w

'rollup' is not recognized as an internal or external command,
operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! svelte-app@1.0.0 dev: `rollup -c -w`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the svelte-app@1.0.0 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Matthew\AppData\Roaming\npm-cache\_logs\2020-05-23T02_58_39_101Z-debug.log
嗯。。。好吧,这很奇怪,因为我看过的每一个教程和我读过的指南都有这个,包括在npm安装中,但是,不用担心,我只会安装rollup,我想我自己。。。一个快速的npm安装-g汇总后,错误是固定的!好的开始。遗憾的是,这不会持续太久,因为现在我遇到了以下问题:

$ npm run dev

> svelte-app@1.0.0 dev C:\Users\Matthew\Desktop\SvelteTest
> rollup -c -w

rollup v2.10.7
bundles src/main.js → public\build\bundle.js...
LiveReload enabled
created public\build\bundle.js in 338ms

> svelte-app@1.0.0 start C:\Users\Matthew\Desktop\SvelteTest
> sirv public "--dev"

'sirv' is not recognized as an internal or external command,
operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! svelte-app@1.0.0 start: `sirv public "--dev"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the svelte-app@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Matthew\AppData\Roaming\npm-cache\_logs\2020-05-23T03_00_53_008Z-debug.log
这一次,再多的npm安装-g sirv也无法工作。要让这个项目运行,我有没有遗漏一步

一些注意事项:

我可以让它在WSL Ubuntu18.04 LTS中工作,但如果可能的话,我宁愿不使用WSL

我在网上没有看到任何地方说Windows不受支持。。。不是吗?我看起来不够努力吗? 当我运行npm install-g rollup时,我看到以下警告:

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.1.2 (node_modules\rollup\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
我假设,由于这是作为可选依赖项列出的,因此它不是问题的根源。尽管如此,为了以防万一,不提出来感觉很傻。这些警告在npm安装期间出现

据我所知,文件npm cahce\\ u logs\[datetime]-debug.log不包含任何有用的信息,它们只是说,sirv public-dev→ 无法启动后跟堆栈跟踪的exec脚本

在第二个错误之后,程序不会自动终止-但是它在localhost:5000上不可用

我的文件在OneDrive中有一段时间了,它们现在在我的桌面上,没有以任何方式同步或跟踪,OneDrive对node_modules/.bin中的文件感到不安,说它们因为名称或类型而无法同步-这让我相信这可能是一个更广泛的Windows/MS问题?不知何故,我怀疑这是个问题

为了再次检查,我在Git Bash中尝试了前面提到的所有步骤。Git Bash是我在Windows、CMD和Powershell上首选的终端,它们都表现出相同的行为


提前谢谢。

啊,好吧。。。我现在觉得自己很傻。与Rollup的问题相同-我必须在全局范围内使用npm安装它。但是,我没有注意到NPM上同时有sirv和sirv cli

运行npm安装-g sirv cli修复了我的问题


然而。。。我仍然想知道,为什么我在任何地方的指南中都没有提到这个问题,其他地方的指南中都没有提到Svelte的Hello World的其他内容。任何信息都将不胜感激

啊,好吧。。。我现在觉得自己很傻。与Rollup的问题相同-我必须在全局范围内使用npm安装它。但是,我没有注意到NPM上同时有sirv和sirv cli

运行npm安装-g sirv cli修复了我的问题


然而。。。我仍然想知道,为什么我在任何地方的指南中都没有提到这个问题,其他地方的指南中都没有提到Svelte的Hello World的其他内容。任何信息都将不胜感激

我查看了“官方”苗条样板,他们在依赖项上有sirv cli:。但不管怎样:恭喜你找到了它,并且每个错误都得到了解决,这积累了经验:你不应该在全球范围内安装东西。通常,当您执行npm运行[script]时,它会将node_modules/.bin预先添加到$PATH中,这样,如果该命令引用本地二进制文件(如rollup或sirv),它将解析为node_modules/.bin/rollup,而node_modules/.bin/rollup又被npm符号链接到相关文件。听起来npm的这部分行为不适合你的特殊需要setup@RichHarris谢谢你的信息!我将更具体地研究这一部分。@matthew-e-brown您是否有可能使用scoop.sh?因为如果你这么做的话,它将是由独家新闻更新引起的,这就是刚才发生的事情。希望能有所帮助。@v01d不,我不是,不过谢谢:我认为导致问题的原因是在Windows上使用Git Bash时出现了一些异常,在最近的一次更新中,它引入了一些类似于Linux控制台的更接近模拟的东西。我完全忘记了选项是什么,但描述是类似于这些东西的。我在没有安装global sirv cli的情况下返回并再次尝试,结果很好。值得注意的是,目前,我认为这是Git For Windows的测试版功能。我查看了“官方”苗条样板,他们在依赖项上有sirv cli:。但不管怎样:恭喜你找到了它,并且每个错误都得到了解决,这积累了经验:你不应该在全球范围内安装东西。通常,当您执行npm运行[script]时,它会将node_modules/.bin预先添加到$PATH中,这样,如果该命令引用本地二进制文件(如rollup或sirv),它将解析为node_modules/.bin/rollup,而node_modules/.bin/rollup又被npm符号链接到相关文件。听起来npm的这部分行为不适合你的特殊需要setup@RichHarris谢谢
r信息!我将更具体地研究这一部分。@matthew-e-brown您是否有可能使用scoop.sh?因为如果你这么做的话,它将是由独家新闻更新引起的,这就是刚才发生的事情。希望能有所帮助。@v01d不,我不是,不过谢谢:我认为导致问题的原因是在Windows上使用Git Bash时出现了一些异常,在最近的一次更新中,它引入了一些类似于Linux控制台的更接近模拟的东西。我完全忘记了选项是什么,但描述是类似于这些东西的。我在没有安装global sirv cli的情况下返回并再次尝试,结果很好。值得注意的是,目前,我认为这是Git For Windows的测试版功能。将其作为开发人员依赖项安装为我解决了问题。将其作为开发人员依赖项安装为我解决了问题。