发现问题

在我疯狂更新博客的时候意外发现一个问题,我的hexo无法生成带空格的文章标题

如:文章《npx hexo生成文章标题时无法添加空格》,我在PowerShell里执行

1
npx hexo new post "npx hexo生成文章标题时无法添加空格"

得到的文件却是hexo生成文章标题时无法添加空格.md

image-20200925191228310

空格前面的npx就被吃了?迷惑……

官网也是这么写的啊!外国人缺了空格还能打字?

image-20200925191541709

查找解决办法

直接看解决方法↓↓↓

网上找了一圈好像也没有我这种问题,也可能是我搜索方式不对?

后来问题定位到了npx上

当时安装hexo的时候官网告诉我有两种运行方式,我就选择了第一种,懒得配环境变量了:

image-20200925191911283

现在问题就出在了npx上

阮一峰的博客中解释了npx中的-c参数,发现里面的例子和我的问题比较像,但是怎么都没改对

后来直接运行npx看到了npx的参数格式:

1
2
3
4
5
6
7
8
9
10
11
12
13
npx

ERROR: You must supply a command.

Execute binaries from npm packages.

npx [options] <command>[@version] [command-arg]...

npx [options] [-p|--package <package>]... <command> [command-arg]...

npx [options] -c '<command-string>'

npx --shell-auto-fallback [shell]

结合博客觉得第11行:npx [options] -c '<command-string>'才是正确的解决办法

于是又在PowerShell里尝试:

1
2
3
4
npx -c 'hexo new post "npx hexo生成文章标题时无法添加空格"'  #报错
npx -c "hexo new post 'npx hexo生成文章标题时无法添加空格'" #
npx -c 'hexo new post npx hexo生成文章标题时无法添加空格' #问题依旧
npx -c "hexo new post npx hexo生成文章标题时无法添加空格" #问题依旧

后来发现

1
npx -c "hexo new post \"npx hexo生成文章标题时无法添加空格\""

可以正确生成文件:npx-hexo生成文章标题时无法添加空格.md但是打开之后里面的标题是:npx hexo生成文章标题时无法添加空格\

问题解决

最终经过多次尝试发现这个命令竟然可以:

1
npx -c "hexo new post \"npx hexo生成文章标题时无法添加空格""

也就是标题的第一个引号加转义字符,第二个不加

问题解决

然而我更迷惑了……

评论