2015-10-01 2 views
1

Я использую nodejs много в последнее время, но я продолжаю сталкиваться с подобной ошибкой. Есть огромное количество проектов, и многие из них имеют пакеты npm, но всякий раз, когда я пытаюсь сделать npm install --save some-package, я не могу понять, как их использовать. Я не имею в виду такие вещи, как экспресс или мангуст, которые, как мне кажется, могут использовать только отлично. Я имею в виду такие вещи, как Bootstrap, или прямо сейчас, masonry-layout.Как использовать пакеты npm в моих проектах

Например, я следовал инструкциям на странице макета кладки, и выполняются следующие действия:

npm install --save masonry-layout

Тогда в соответствии с npm page for masonry-layout я добавил к следующему моему общего назначения scripts.js файлы (я держу небольшие фрагменты мне нужно здесь, пока я не разделюсь код более логично):

$('.grid').masonry({ 
    // options... 
    itemSelector: '.grid-item', 
    columnWidth: 200 
}); 

Однако я получаю следующую ошибку в моей консоли при загрузке страницы:

TypeError: $(...).masonry is not a function 
    $('.grid').masonry({ 

У меня возникают аналогичные проблемы, когда я пытаюсь использовать другие модули или проекты внешнего интерфейса. Я что-то упускаю? Я всегда просто использую cdn или устанавливаю файлы вручную, и я устаю работать таким образом.

ответ

3

Вам все равно необходимо включить эти скрипты на свою страницу.

Используйте старый добрый <script src="…"> или какой-либо загрузчик модуля. (Например require.js)

+0

Вы имеете в виду пример скрипта внутри папки в 'node_modules' или из моего собственного скрипта? Я загружаю свой скрипт, но ничего не указываю на документ в 'node_modules', где был установлен модуль. требуется.js отдельно от типичного запроса на вызов, сделанного в файле узла app.js? – eignhpants

+0

@eignhpants Вы не находитесь внутри приложения-узла - вы находитесь на веб-сайте, который отображается в браузере. И вам нужно указать браузеру, где найти все эти файлы сценариев. Да, это должна быть ссылка на модуль внутри 'node_modules', если вы используете их на стороне клиента. (Объяснение загрузчика модуля JS, похоже, require.js отсутствует здесь, см .: http://addyosmani.com/writing-modular-js/ или http://ruben.verborgh.org/blog/2012/08/13/ javascript-module-loaders-needed-evil /) – feeela

+0

Как инструмент, подобный bower, вписывается во все это? Из того, что я знаю, похоже, что его можно использовать для выполнения аналогичной задачи. – eignhpants

0

что я сделал вместо того, чтобы использовать кладочный пакет для загрузки JQuery кладки скрипта и добавить его в качестве «тега сценария»/JS файл
и вы можете сформировать макет легко в CSS

0

masonry-layout НПЙ пакет установит .js, который вам нужен, в node_modules/masonry-layout/dist/masonry.pkgd.min.js. Вы должны включить этот файл в тег <script> на своей странице.

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