2015-02-17 1 views
1

У кого-нибудь есть эта проблема? Существует ли конфликт между Underscore и Lodash? Раньше казалось, что Underscore заменяет Lodash, поэтому я прокомментировал Underscore, который в этом случае удалил Underscore, но не разрешил мне доступ к моему обновлению lodash 3.2.Файл Lodash не найден, но он указан правильно в index.html и находится в описанном каталоге

Мой index.html:

<script src="../bower_components/angular/angular.js"></script> 
<script src="../bower_components/lodash/lodash.js"></script> 
<!--<script src="../bower_components/underscore/underscore.js"></script>--> 
<script src="../node_modules/lodash/lodash.js"></script> 

Я имел lodash и подчеркнуть в обоих bower_components и node_modules. Я извлек подчеркивание из node_modules. Я просто хочу, чтобы lodash работал, мне нужна пара функций.

+0

Удалить ссылку на более раннюю версию lodash. Будет конфликт между lodash и подчеркиванием, поскольку они оба используют одно и то же _ пространство имен. –

+0

спасибо! Сделаю! – rashadb

ответ

1

Некоторые вещи на виду здесь.

Во-первых, как Underscore, так и Lodash будут определять ту же самую глобальную переменную, _.

Поэтому, если вы добавите оба, последний объявленный будет «выиграть». Это происходит просто потому, что браузер оценивает объявленные теги script в том порядке, в котором они появляются.

Это не нужно, поскольку это заставляет браузер загружать лишние байты ни для чего. Итак выберите один и удалите остальные.

Этот также применим к нескольким версиям одной и той же библиотеки. Итак, в вашем случае победит последняя объявленная версия lodash.

Во-вторых, вы, кажется, ссылаетесь на lodash прямо с node_modules. Вы должны иметь в виду, что зависимости от node_modules не являются обычно импортированы непосредственно в ваш HTML. Самый распространенный способ - использовать такой инструмент, как WebPack, который позволяет объединить несколько зависимостей в один файл.

Причина в том, что зависимости node_modules могут быть непредсказуемыми. bower_components, с другой стороны, сохраняет все зависимости от корневой папки и позволяет вам выбирать, когда есть конфликты. Это более похоже на среду браузера. Вы можете узнать больше об этом здесь: http://blog.npmjs.org/post/101775448305/npm-and-front-end-packaging

+1

Спасибо за подробный ответ. Это пригодится в будущем! – rashadb

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