
Как быстро начать работу с VUE3.0: Перейти к изучению
1.1 Что такое модульность?
Под модульностью понимается процесс разделения системы на несколько модулей послойно сверху вниз при решении сложной задачи. Для всей системы модули — это блоки, которые можно объединять, разлагать и заменять.
Модуляризация в области программирования заключается в следовании фиксированным правилам и разделении большого файла на несколько небольших модулей, независимых и взаимозависимых.
Преимущества разделения кода на модули:
Это повышает возможность повторного использования кода,
улучшает удобство его сопровождения
и обеспечивает загрузку по требованию.
2.1. Классификация модулей
в Node.js в зависимости от. В зависимости от источника модуля модули делятся на 3 основные категории, а именно:
встроенные модули (встроенные модули официально предоставляются Node.js, такие как fs, path, http и т. д.)
пользовательские модули (каждый . js, созданный пользователем), все являются настраиваемыми модулями)
Сторонние модули (модули, разработанные третьими лицами, официально не представляют собой встроенные модули, а также не являются настраиваемыми модулями, созданными пользователями, и их необходимо загружать перед использованием)
2.2 Загружайте модули
с помощью мощного метода require(). Вы можете загружать необходимые встроенные модули, пользовательские модули и сторонние модули для использования. Например:

Примечание. При использовании метода require() для загрузки других модулей будет выполнен код загруженного модуля; суффикс файла «.js» можно опустить при загрузке пользовательского модуля.
2.3 Область действия модуля в Node.js
Что такое область действия модуля
? Подобно области действия функции, переменные, методы и другие члены, определенные в пользовательском модуле, доступны только внутри текущего модуля. Это ограничение доступа на уровне модуля. Оно называется областью модуля.
Преимущество области модуля
предотвращает проблему загрязнения глобальных переменных (если два js-файла импортируются с тегами сценария и в обоих файлах определена одна и та же переменная, первая будет перезаписана второй)
2.4. Совместное использование области модуля извне. Член
1 . Объект модуля
В каждом пользовательском модуле .js есть объект модуля, в котором хранится информация, относящаяся к текущему модулю. Он печатается следующим образом:

2. Объект Module.exports
В пользовательском модуле вы можете использовать объект Module.exports для совместного использования членов внутри модуля для внешнего использования.
Когда внешний мир использует метод require() для импорта пользовательского модуля, он получает объект, на который указывает модуль.exports.
3. На что следует обратить внимание при совместном использовании членов:
при использовании метода require() для импорта модуля результат импорта всегда будет основан на объекте, на который указывает модуль.exports.

4. Объект экспорта.
Поскольку слово Module.exports относительно сложно написать, чтобы упростить код для внешнего совместного использования элементов, Node предоставляет объект экспорта. По умолчанию экспорт и модуль.exports указывают на один и тот же объект. Окончательный общий результат по-прежнему основан на объекте, на который указывает модуль.exports.

5. Недоразумения в использовании экспорта и модуля.exports.
Всегда помните, что при вызове метода require() вы всегда получаете объект, на который указывает модуль.exports:

Личное понимание: экспорт и модуль.exports изначально указывают на один и тот же объект. Просто монтируя данные, они по-прежнему указывают на тот же объект. Данные, смонтированные с помощью экспорта, также можно получить с помощью модуля require. Если одна сторона присваивает значение (указывая на другой объект, то они не указывают на один и тот же объект, а модуль require получает объект, на который указывает модуль.exports, поэтому, как только одна сторона изменит указатель, модуль require не получит значение экспорта.)
Примечание. Во избежание путаницы не рекомендуется использовать экспорт и модуль.exports одновременно в одном модуле.
2.5 Спецификация модульности в Node.js Node.js следует модульности CommonJS. спецификация CommonJS определяет характеристики модулей и то, как каждый модуль взаимодействует друг с другом.
CommonJS предусматривает:
(1) Внутри каждого модуля переменная модуля представляет текущий модуль.
(2) Переменная модуля является объектом, а ее атрибут экспорта (т. е. модуль.exports) — внешним интерфейсом.
(3) Загрузка модуля фактически загружает атрибут модуля.exports модуля. Метод require() используется для загрузки модулей.
3.1. Пакеты
1. Что такое пакет.
Сторонние модули в Node.js также называются пакетами.
Точно так же, как компьютеры и компьютеры относятся к одному и тому же, сторонние модули и пакеты относятся к одной и той же концепции, но с разными именами.
2. Исходный код пакета
отличается от встроенных и пользовательских модулей Node.js. Пакет разработан сторонним лицом или командой и бесплатен для использования всеми.
Примечание. Все пакеты Node.js бесплатны и имеют открытый исходный код, их можно бесплатно загрузить и использовать без оплаты.
3. Зачем нужны пакеты
Поскольку встроенные модули Node.js предоставляют лишь некоторые низкоуровневые API, эффективность разработки проектов на основе встроенных модулей очень низка.
Пакет инкапсулирован на основе встроенных модулей, предоставляя более продвинутый и удобный API, что значительно повышает эффективность разработки.
Отношения между пакетами и встроенными модулями аналогичны отношениям между jQuery и встроенным API браузера.
4. Где скачать пакеты?
За рубежом есть ИТ-компания npm, Inc. У этой компании есть очень известный веб-сайт: www.npmjs.com/, который является крупнейшей платформой для обмена пакетами в мире. Вы можете скачать его отсюда. веб-сайт Найдите любой пакет, который вам нужен, если у вас достаточно терпения!
На данный момент более 11 миллионов разработчиков по всему миру разработали и поделились более 1,2 миллиона пакетов для нашего использования через эту платформу обмена пакетами. Компания npm, Inc. предоставляет сервер реестра.npmjs.org/ для внешнего доступа ко всем пакетам. Мы можем загрузить нужные нам пакеты с этого сервера.
Примечание.
Найдите нужный вам пакет на веб-сайте www.npmjs.com/
и загрузите нужный пакет с сервера реестра.npmjs.org/
. 5. Как загрузить пакет
npm, Inc. Компания предоставляет инструмент управления пакетами. , мы можем использовать этот инструмент управления пакетами для загрузки необходимых пакетов с сервера реестра.npmjs.org/ для локального использования.
Имя этого инструмента управления пакетами — Node Package Manager (называемый инструментом управления пакетами npm). Этот инструмент управления пакетами устанавливается на компьютер пользователя вместе с установочным пакетом Node.js.
Вы можете выполнить команду npm -v в терминале, чтобы проверить номер версии инструмента управления пакетами npm, установленного на вашем компьютере:

3.2 Первый опыт работы с npm
1. Команда для установки пакетов в проект
Если вы хотите установить в проект пакет с указанным именем, вам необходимо запустить следующую команду:
npm install Полное имя пакета
Приведенная выше команда упаковки может сокращаться до следующего формата:
npm i Полное имя пакета
. 2. Какие дополнительные файлы добавляются после первоначальной установки пакета.
После завершения первоначальной установки пакета появится дополнительная папка с именем node_modules и файл конфигурации package-
?lock.json в папке проекта.
Среди них: папка node_modules используется для хранения всех пакетов, установленных в проекте. Когда метод require() импортирует сторонний пакет, он ищет и загружает пакет из этого каталога.
Файл конфигурации package-lock.json используется для записи информации о загрузке каждого пакета в каталоге node_modules, такой как имя пакета, номер версии, адрес загрузки и т. д.
Примечание. Программистам не следует вручную изменять какой-либо код в файлах node_modules или package-lock.json, инструмент управления пакетами npm будет автоматически поддерживать их.
3. Установите указанную версию пакета.
По умолчанию, когда вы используете команду npm install для установки пакета, последняя версия пакета будет установлена автоматически. Если вам необходимо установить пакет указанной версии, вы можете указать конкретную версию с помощью символа @ после имени пакета, например:
npm i [email protected]
4. Спецификация семантической версии пакета
Номер версии пакет представлен в «десятичном формате с точками». Он определяется в виде трех цифр, например, 2.24.0.
Значение каждой цифры следующее:
1-я цифра: основная версия
2-я цифра: функциональная версия
3-я цифра: исправление ошибки версия
номер версии Правила продвижения: Пока номер предыдущей версии увеличивается, номер последующей версии возвращается к нулю.
3.3 Файл конфигурации управления пакетами
npm предусматривает, что файл конфигурации управления пакетами с именем package.json должен быть предоставлен в корневом каталоге проекта. Используется для записи некоторой информации о конфигурации, связанной с проектом. Например:
имя проекта, номер версии, описание и т. д.
Какие пакеты используются в проекте,
какие пакеты используются только во время разработки,
какие пакеты необходимы во время разработки и развертывания
Проблемы, возникающие
при совместной работе нескольких человек
: Размер сторонние пакеты слишком велики, поэтому членам команды неудобно делиться исходным кодом проекта.Решение. Удалите node_modules при совместном использовании.
2. Как записать, какие пакеты установлены в проекте
. В корневом каталоге проекта создайте файл конфигурации с именем package.json, который можно использовать для записи того, какие пакеты установлены в проекте. Это упрощает обмен исходным кодом проекта между членами команды после удаления каталога node_modules.
Примечание. При дальнейшей разработке проекта обязательно добавьте папку node_modules в файл игнорирования .gitignore.
3. Быстро создайте package.json.
Инструмент управления пакетами npm предоставляет команду быстрого доступа для быстрого создания файла конфигурации управления пакетами package.json в каталоге, где выполняется команда:
npm init -y
Примечание:
(1) Приведенная выше команда. может быть успешно запущен только в английском каталоге! Поэтому имя папки проекта должно быть указано на английском, а не на китайском языке, и не должно быть пробелов.
(2) При запуске команды npm install для установки пакета инструмент управления пакетами npm автоматически записывает имя и номер версии пакета в package.json.
4. Узел зависимостей
В файле package.json есть узел зависимостей, который специально используется для записи того, какие пакеты вы установили с помощью команды npm install.
5. Установите все пакеты одновременно.
Когда мы получаем проект с удаленными node_modules, нам необходимо загрузить все пакеты в проект, прежде чем мы сможем запустить проект. В противном случае будет сообщено об ошибке, аналогичной следующей:

Вы можете запустить команду npm install (или npm i), чтобы установить все зависимые пакеты одновременно:

6. Чтобы удалить пакет
, вы можете запустить команду npm uninstall для удаления указанного пакета:
npm uninstall определенное имя пакета.
Примечание. После успешного выполнения команды удаления npm удаленный пакет будет автоматически удален из зависимостей package.json. . Сокращение для удаления не существует.
7. Узел devDependities.
Если некоторые пакеты будут использоваться только на этапе разработки проекта и не будут использоваться после выхода проекта в Интернет, рекомендуется записать эти пакеты в узел devDependities.
Соответственно, если какие-то пакеты необходимо использовать после разработки и запуска проекта, рекомендуется записать эти пакеты в узел зависимостей.
Вы можете использовать следующую команду для записи пакета в узел devDependities:

3.4 Решение проблемы низкой скорости загрузки пакетов
1. Почему скорость загрузки пакетов низкая.
При использовании npm для загрузки пакетов они загружаются с зарубежного сервера реестра.npmjs.org/, поэтому скорость загрузки пакетов будет очень низкой? .
2. Зеркальный сервер Taobao NPM
Taobao построила сервер в Китае для синхронизации пакетов на официальных иностранных серверах с внутренними серверами, а затем предоставления услуг по распространению пакетов в Китае. Это значительно повышает скорость загрузки пакетов.
Расширение: Зеркальное отображение — это форма хранения файлов. Данные на одном диске имеют идентичную копию на другом диске, который является зеркалом.

3. Переключите источник зеркала пакета npm.
Источник зеркала пакета относится к адресу сервера пакета.

4. nrm
Чтобы более удобно переключать источник изображения пакета, мы можем установить инструмент nrm и использовать команду терминала, предоставляемую nrm, для быстрого просмотра и переключения источника изображения пакета.

3.5 Классификация пакетов
Пакеты, загруженные с помощью инструмента управления пакетами npm, делятся на две категории, а именно:
глобальный пакет
проекта
1. Пакет проекта
. Все пакеты, которые устанавливаются в каталоге node_modules проекта, являются пакетами проекта.
Пакеты проекта делятся на две категории, а именно:
пакеты зависимостей разработки (пакеты, записанные в узле devDependities, которые используются только во время разработки)
пакеты основных зависимостей (пакеты, записанные в узле зависимостей, которые используются во время разработки и проекта). используется после выхода в Интернет)

2. Глобальный пакет. При выполнении команды установки npm, если указан параметр -g, пакет будет установлен как глобальный пакет.
Глобальный пакет будет установлен в каталог C:Usersuser каталогAppDataRoamingnpmnode_modules.

Примечание.
(1) Глобально необходимо устанавливать только пакеты инструментов. Потому что они предоставляют полезные команды терминала.
(2) Чтобы определить, нужно ли устанавливать пакет глобально, прежде чем его можно будет использовать, вы можете обратиться к официальным инструкциям по использованию.
3. i5ting_toc
i5ting_toc — небольшой инструмент, который может конвертировать документы md в страницы html. Для этого необходимо выполнить следующие шаги:

3.6 Стандартизированная структура пакета
После понимания концепции пакетов и того, как их загружать и использовать, давайте более подробно рассмотрим внутреннюю структуру пакетов.
Стандартизированный пакет должен соответствовать следующим трем требованиям:
(1) Пакет должен существовать в отдельном каталоге
(2) Каталог верхнего уровня пакета должен содержать файл конфигурации управления пакетами package.json
(3) package.json должен содержать три атрибута: имя, версия и основной, которые соответственно представляют имя пакета, номер версии и запись пакета.
Примечание. Три вышеуказанных требования представляют собой формат, которому должна соответствовать стандартизированная структура пакета. Дополнительные ограничения можно найти по следующему URL-адресу: https://yarnpkg.com/zh-Hans/docs/package-json
. 3.7. Разработайте свой пакет. собственный пакет
1. Инициализируйте базовую структуру пакета
(1) Создайте новую папку itheima-tools в качестве корневого каталога пакета
(2) В папке itheima-tools создайте следующие три файла:
package.json (управление пакетами) файл конфигурации)
index.js (входной файл пакета)
README.md (документ с описанием пакета)
2. Инициализируйте package.json

Примечание: имя — используется для указания названия приложения или программного пакета; версия — указывает текущую версию; основное — устанавливает точку входа приложения; описание — краткое описание приложения/пакета программного обеспечения — этот атрибут содержит ключевые слова; Массив ключевых слов, связанных с функцией пакета программного обеспечения (помогает просматривать официальный сайт узла для поиска лицензии пакета программного обеспечения);
3. Напишите документацию пакета.
Файл README.md в корневом каталоге пакета представляет собой документацию по использованию пакета. С его помощью мы можем заранее написать инструкцию по использованию пакета в формате уценки для удобства пользователя.
Не существует обязательных требований к тому, какое содержимое должно быть записано в файле README, при условии, что функция, использование, меры предосторожности и т. д. пакета могут быть четко описаны;
3.8 Пакет выпуска
1. Зарегистрируйте учетную запись npm
(1) Посетите веб-сайт www.npmjs.com/, нажмите кнопку регистрации, чтобы войти в пользовательский интерфейс регистрации
(2) Заполните информацию, связанную с учетной записью: полное имя, общедоступный адрес электронной почты, имя пользователя, Пароль
(3) Нажмите кнопку «Создать учетную запись», чтобы зарегистрировать учетную запись.
(4) Войдите в свою электронную почту и нажмите ссылку подтверждения, чтобы подтвердить учетную запись.
2. Войдите в учетную запись npm.
После завершения регистрации учетной записи npm вы
.можно выполнить команду входа в систему npm в терминале и ввести имя пользователя и пароль (пароль). Он скрыт и не виден. Просто введите правильный ключ (Enter), адрес электронной почты и код OTP, отправленный на адрес электронной почты, а затем. вы можете успешно войти в систему.
Примечание. Перед запуском команды входа в систему npm необходимо сначала переключить адрес сервера пакета на официальный сервер npm. (Если вы раньше использовали сервер taobao, вам необходимо переключиться на официальный сервер npm). В противном случае публикация пакета не удастся!

3. Опубликуйте пакет в npm
.
После переключения терминала в корневой каталог пакета запустите команду npmPublish, чтобы опубликовать пакет в npm (обратите внимание: имена пакетов не могут быть одинаковыми. Вы можете перейти на официальный сайт, чтобы проверьте, есть ли пакеты с таким именем).
4. Удалите опубликованный пакет.
Запустите команду npm unpublish package name --force, чтобы удалить опубликованный пакет из npm.
Примечание:
(1) Команда npm unpublish может удалять только пакеты, опубликованные в течение 72 часов
(2) Пакеты, удаленные командой npm unpublish, не могут быть повторно опубликованы в течение 24 часов
(3) Будьте осторожны при публикации пакетов и старайтесь не публиковать их. на npm Бессмысленный пакет!
4.1. Приоритизация загрузки из кеша.
Модули будут кэшироваться после первой загрузки. Это также означает, что многократный вызов require() не приведет к многократному выполнению кода модуля.

Примечание. Независимо от того, являются ли это встроенными модулями, пользовательскими модулями или модулями сторонних производителей, они сначала загружаются из кэша, тем самым повышая эффективность загрузки модулей.
4.2 Механизм загрузки встроенных модулей
Встроенные модули — это модули, официально предоставляемые Node.js. Встроенные модули имеют наивысший приоритет загрузки.
Например: require('fs') всегда возвращает встроенный модуль fs, даже если в каталоге node_modules есть пакет с таким же именем, он также называется fs.
4.3 Механизм загрузки пользовательского модуля
При использовании require() для загрузки пользовательского модуля вы должны указать идентификатор пути, начинающийся с ./ или ../. Если при загрузке пользовательского модуля не указан идентификатор пути, например ./ или ../, узел загрузит его как встроенный модуль или сторонний модуль.
В то же время при использовании require() для импорта пользовательского модуля, если расширение файла опущено, Node.js попытается загрузить следующие файлы по порядку:
(1) Загрузить в соответствии с точным именем файла
(2) Завершение Расширение .js для загрузки
(3) Заполните расширение .json для загрузки
(4) Заполните расширение .node для загрузки
(5) Загрузка не удалась, терминал сообщает об ошибке
4.4 Если механизм загрузки сторонних модулей
передан для запроса () Если идентификатор модуля не является встроенным модулем и не начинается с «./» или «../», Node.js попытается загрузить сторонний модуль из папки /node_modules, начиная с родительский каталог текущего модуля.
Если соответствующий сторонний модуль не найден, он перемещается в родительский каталог на уровень выше и загружается до корневого каталога файловой системы.
Например, если предположить, что require('tools') вызывается в файле C:Usersitheimaprojectfoo.js, Node.js будет выполнять поиск в следующем порядке:
(1) C:Usersitheima проект node_modulestools
(2) C:Usersitheimanode_modulestools
(3) C:Usersnode_modulestools
(4) C:node_modulestools
4.5 Каталог как модуль
При передаче каталога как модуль идентификатор. При загрузке require() существует три метода загрузки:
(1) Найдите файл package.json в загружаемом каталоге и найдите основной атрибут, который служит точкой входа для загрузки require()
( 2) Если в каталоге нет файла package.json или основная запись не существует или не может быть проанализирована, Node.js попытается загрузить файл index.js в каталог.
(3) Если два вышеуказанных шага не удались, Node.js выведет сообщение об ошибке в терминале, сообщая об отсутствующем модуле: Ошибка: невозможно найти модуль «xxx».
Эта статья воспроизведена по адресу: https://juejin.cn/post. /7083445004240158757