NodePackageImporter
Иерархия
- NodePackageImporter
Индекс
Конструкторы
Свойства
Конструкторы
конструктор
- new NodePackageImporter(entryPointDirectory?: string): NodePackageImporter
-
У импортера NodePackageImporter есть необязательный
entryPointDirectoryпараметр, который представляет собой каталог, в котором импортер Node Package должен начинать поиск при разрешенииpkg:URL-адресов в источниках, отличных от файлов на диске. Он будет использоваться какparentURLв алгоритме разрешения модулей Node.Для того, чтобы импортер пакетов Node нашел пакет, он должен находиться внутри папки node_modules, расположенной в
entryPointDirectoryили в одном из ее родительских каталогов, вплоть до корня файловой системы.Относительные пути будут разрешаться относительно текущей рабочей директории. Если путь не указан, он по умолчанию устанавливается в родительский каталог точки входа Node.js. Если таковой отсутствует, будет выброшено исключение.
Параметры
-
OptionalentryPointDirectory: string
Возвращает NodePackageImporter
-
Свойства
Private Readonly [nodePackageImporterKey]
Используется для отличия этого типа от любого произвольного объекта.
© 2006–2025 the Sass team, and numerous contributors
Licensed under the MIT License.
https://sass-lang.com/documentation/js-api/classes/NodePackageImporter
Встроенный импортер пакетов Node.js. Он загружает URL-адреса pkg: из node_modules в соответствии со стандартным алгоритмом разрешения Node.js.
Импортер пакетов Node.js экспонируется как класс, который можно добавить к параметру
importers.Создание пакетов Sass
Авторы пакетов могут контролировать, что экспонируется их пользователям, через свой
package.jsonманифест. Рекомендуемый метод — добавить условный экспортsassвpackage.json.Это позволяет пользователю пакета написать
@use "pkg:uicomponents", чтобы загрузить файл по адресуnode_modules/uicomponents/src/scss/index.scss.Импортер пакетов Node.js поддерживает различные форматы, поддерживаемые точками входа пакетов Node.js package entry points, позволяя авторам экспонировать несколько подпутей.
Это позволяет пользователю пакета написать:
@use "pkg:uicomponents";, чтобы импортировать основной экспорт.@use "pkg:uicomponents/colors";, чтобы импортировать частичный файл colors.@use "pkg:uicomponents/theme/purple";, чтобы импортировать тему purple.Обратите внимание, что, хотя пользователи библиотек могут полагаться на импортер для разрешения частичных файлов, индексных файлов и расширений, авторы библиотек должны указывать полный путь к файлу в
exports.Помимо условия
sass, также приемлемо условиеstyle. Sass будет соответствовать условиюdefault, если это соответствующий тип файла, но авторы не должны полагаться на это. Обратите внимание, что порядок ключей имеет значение, и импортер будет разрешать первое значение с ключом, который являетсяsass,styleилиdefault, поэтому вы всегда должны ставитьdefaultпоследним.Чтобы помочь авторам пакетов, которые еще не перешли на точки входа в пакеты, используя поле
exports, импортер пакетов Node.js предоставляет несколько вариантов обратной совместимости. Еслиpkg:URL не содержит подпути, импортер пакетов Node.js будет искать ключsassилиstyleв корнеpackage.json.Это позволяет пользователю написать
@use "pkg:uicomponents";, чтобы импортировать файлindex.scss.Наконец, импортер пакетов Node.js будет искать файл
indexв корне пакета, разрешая частичные файлы и расширения. Например, если файл_index.scssсуществует в корне пакетаuicomponents, пользователь может импортировать его с помощью@use "pkg:uicomponents";.Если
pkg:URL включает подпуть, который не соответствует точкам входа в пакеты, импортер Node.js попытается найти этот файл относительно корня пакета, разрешая расширения файлов, частичные файлы и индексные файлы. Например, если файлsrc/sass/_colors.scssсуществует в пакетеuicomponents, пользователь может импортировать этот файл, используя@use "pkg:uicomponents/src/sass/colors";.