Я хочу сохранить файлы JavaScript (.js) под элементом управления git.
Однако, если существует файл TypeScript (.ts), я хотел бы проигнорировать связанный файл .js.
Есть ли способ достичь этого с помощью git?
EDIT: желательно без изменения каталогов и реорганизации всего существующего кода.
Типичный способ сделать это - поместить любой скомпилированный вывод в некоторый каталог распространения. Вы могли бы организовать структуру своего каталога следующим образом:
src/
... various JavaScript files, etc.
dist/
... compiled output from any build tool you're using
Затем в git вы можете просто игнорировать каталог dist
и предположить, что любой, кто собирается вытащить это репо и будет работать над ним, либо запустит инструмент сборки вручную, либо автоматически будет создан как часть процесса установки.
Другими словами, проще организовать его, не зависимо от конкретного набора функций git. Это довольно распространенный шаблон в мире JavaScript.
Если вы не пойдете на этот метод, другой способ сделать это - добавить некоторый идентификатор в файлы, которые вы хотите игнорировать. Например, вы можете добавить все свои файлы, которые хотите игнорировать, с помощью _
, а затем добавить это правило в свой .gitignore
(см. этот ответ, почему следующие работы ):
\_*
Есть некоторые недостатки этого второго подхода:
Надеюсь, что это поможет.
This is a pretty common pattern in the JavaScript world.
не только в JS. Практически все, что производит сгенерированный вывод, сделает это. В целом различие между источником и произведением является почти универсальным. Это был бы шаг сборки, чтобы взять все сгенерированные файлы и связать их (каким-то образом) в результат, который в этом случае может быть выражен как взятие всех файлов *.js
и помещение их в каталог /js/
или что-то, но исключая *.ts
как то не используется конечный продукт.
_somefile.js
либо выведите JS в другой каталог, например,generated/somefile.js