2016-06-09 3 views
0

Я работаю над библиотекой . Я пытался изменить его, так что он использует пользовательский плеер вместо игрока HTML5. Итак, я заменил вызовы функций на play() и т. Д. С вызовами моего пользовательского плеера (скажем custFunc1()). Эти вызовы определяются в отдельном файле : custPlayer.js.Вызов функции, определенной за пределами библиотеки Javascript

Так что в моем файле index.html, я сначала включить файл custPlayer.js, а затем встроенный файл.

Однако проблема заключается в том, что при создании пакета video.js с использованием grunt я получаю сообщение об ошибке custFunc1 не определено и, таким образом, grunt не может создать библиотеку video.js.

Теперь я смог узнать от коллеги, что добавление /* глобального custFunc1 */ в начале конкретного файла в пакете, откуда я звоню custFunc1 решает проблему. Конструкция grunt преуспевает, и она отлично работает.

Так что я хочу знать:

  1. Как это на самом деле решить эту проблему, так как это так же, как комментарий в JavaScript, как это относиться к этому по-другому и понять, что это указывает на что определение функции будет присутствовать вне библиотеки?

  2. Является ли слово глобальным какое-то ключевое слово в javascript?

  3. Есть ли другие способы достижения этого, кроме того, что я упомянул?

  4. На несколько другую заметку, я хотел бы спросить, является ли приблизительным эквивалентом ?

ответ

1

Ваш браузер быть linted как часть вашего процесса хрюкать, если смотреть в корень папки проекта вы должны увидеть файл как .jshintrc или что-то вдоль этих линий (различные в зависимости от пуха).

Ваши текущие настройки означают, что linter проходит через ваши .js-файлы по одному за раз, и если он встречает переменную или функцию из других файлов, это вызывает ошибку, которую вы видите. Вы можете отключить эту проверку или добавить custFunc1 в массив известных глобальных переменных. В jshint вы делаете это как так - https://github.com/gruntjs/grunt-contrib-jshint#jshintrc

{ 
    "globals": { 
    "custFunc1": true 
    } 
} 

глобалов, вероятно, уже будет присутствовать в файле, так что просто добавьте custFunc1: правда к нему.

О, и ответить на вопрос 1 - синтаксис типа комментария указывает linter игнорировать его настройки для этого текущего файла, в основном переопределяя настройки в файле .jshintrc.

2 - Да, это параметр в jshintrc и добавление custFunc1 к нему внутри самого файла, а не по всему миру.Файл jshintrc.

3 - Упоминается выше.

4 - Никогда не использовался производитель, но да, я считаю, что его аналогичный в том, что его инструмент предварительного процесса

Смежные вопросы