Проблема в том, что clasp create <words>
создает проект в текущем каталоге с именем проекта сценария <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
, указывающий на сжатие, что это застежкасвязанный репо и соответствует одному проекту скрипта Apps.В вашем случае вы имеете следующую структуру каталогов:
AppsScriptProjects/
`--- AppsScriptName/
|--- .clasp.json
|--- appsscript.json
|--- myscript.js
...
Когда вы пытаетесь вызвать clasp create "Test Project"
из AppsScriptProjects/
, вы предлагаете clasp создать эту структуру:
AppsScriptProjects/
|--- AppsScriptName/
| |--- .clasp.json
| |--- appsscript.json
| |--- myscript.js
| ...
|--- .clasp.json
`--- appsscript.json
Solution
Вместо описанных выше подходов создайте & cd в "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
.