Действительно ли подмодули мерзавца являются единственным безопасным способом иметь рабочие копии в рамках рабочих копий?

Я попытаюсь объяснить это на простом примере. Если вы используете сторонние библиотеки, такие как jQuery, в проектах Angular или машинописных текстах

Вы можете напрямую ссылаться на файл jquery (файл angular.json) в проектах Angular и писать код, указав $ или jQuery, как показано ниже

, как показано ниже

declare var $: any;
ngOnInit() {
   $(document).ready(function() {
     alert('I am Called From jQuery');
   });
}

Код будет работать. Но проблема заключается в том, что машинопись - это проверка типов и обнаружение ошибок в коде только во время компиляции.

Так как машинопись не знает ничего о библиотеке jquery, она не может выполнять статическую проверку типов. приведенный ниже код компилируется без ошибок

ngOnInit() {
   $(document).ready(function() {
     $('#my-button').click(1);
 });
}

Я передаю неверный параметр функции click jquery, и приведенный выше код будет компилироваться, и во время выполнения всякий раз, когда мы нажимаем на элемент кнопки, он выдаст ошибку.

Вот где набирает текст. Но если у вас есть определения типов для jquery plug, такие ошибки могут быть обнаружены только во время компиляции.

Установите наборы jquery из пакетов узлов и сослаться на них в коде

npm install --save jquery
npm install --save @types/jquery

И импортировать объект jquery в код, как показано ниже

import * as $ from 'jquery';

И теперь приведенный выше код не будет компилироваться и выдает ошибку, говоря

Argument of type ‘1’ is not assignable to parameter of type ‘false | EventHandlerBase>’

Вы можете прочитать больше на Как установить и использовать JQuery в угловых проектах

17
задан Andrew Grimm 28 May 2009 в 01:19
поделиться

2 ответа

В Git можно просто "вкладывать" рабочие копии. Итак, если вы клонируете репозиторий своей программы, а затем внутри него делаете клон ваших файлов данных, тогда вы можете работать с ними независимо. Когда Git выполняет файловые операции, он ищет вверх по дереву каталогов в поисках каталога .git , поэтому операции Git, выполняемые в репозитории данных, не влияют на репозиторий программы. Если вы сделаете это, вы можете добавить имя каталога данных в .gitignore , чтобы уменьшить шум от репозитория программы.

20
ответ дан 30 November 2019 в 13:40
поделиться

Это также полезный способ обхода при работе с Heroku и рельсами в ситуациях, когда у вас есть плагины, для которых необходимо управлять версиями. В настоящее время Heroku не поддерживает подмодули git, поэтому вложение рабочих копий кажется лучшим решением. В этом случае вы не захотите добавлять каталог плагинов в .gitignore, так как в этом случае вы не сможете загрузить свои плагины при нажатии на heroku, но se la vi. Надеюсь, Heroku со временем будет поддерживать подмодули git.

1
ответ дан 30 November 2019 в 13:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: