问题是在当前目录clasp create <words>
中创建了一个项目,脚本项目名称为,除了and<words>
之外没有其他文件。appsscript.json
.clasp.json
即使给出了--rootDir <folder name>
参数,项目也会在当前目录中创建。这与对当前目录clasp clone
执行克隆的行为相同。
所以:
$ cd ~/clasp_projects
$ clasp create "project 1"
Clone which script? (Use arrow keys)
Clone which script? standalone
Created new standalone script <...>
$ ls -a
./ ../ .clasp.json appsscript.json
如果您也提供了根目录:
$ cd ~/clasp_projects
$ mkdir "project 1"
$ clasp create "project 1" --rootDir "project 1"
Clone which script? (Use arrow keys)
Clone which script? standalone
Created new standalone script <...>
$ ls -a
./ ../ .clasp.json appsscript.json 'project 1'/
$ ls -a "project 1"
./ ../
没什么不同。
对于这两种情况,您的当前目录现在都有一个.clasp.json
文件,向 clasp 指示这是一个与 clasp 相关的存储库,并且对应于单个 Apps 脚本项目。在您的情况下,您具有以下目录结构:
AppsScriptProjects/
`--- AppsScriptName/
|--- .clasp.json
|--- appsscript.json
|--- myscript.js
...
当您尝试调用clasp create "Test Project"
fromAppsScriptProjects/
时,您是在告诉 clasp 创建此结构:
AppsScriptProjects/
|--- AppsScriptName/
| |--- .clasp.json
| |--- appsscript.json
| |--- myscript.js
| ...
|--- .clasp.json
`--- appsscript.json
解决方案
代替上述方法,创建 & cd into "Test Project/"
:
$ cd AppsScriptProjects
$ mkdir "Test Project"
$ cd "Test Project"
$ clasp create
...
然后将产生
AppsScriptProjects/
|--- AppsScriptName/
| |--- .clasp.json
| |--- appsscript.json
| |--- myscript.js
| ...
`--- Test Project/
|--- .clasp.json
`--- appsscript.json
简而言之:clasp
适用于您当前的目录。它不会在子目录中创建项目。虽然它可以在子目录中创建项目文件,但项目目录(您可以在其中找到.clasp.json
)是您调用的目录clasp
。