Spec-Zone.ru › Sass

NodePackageImporter

Совместимость:
Dart Sass
с версии 1.71.0
Node Sass
✗

Встроенный импортер пакетов Node.js. Он загружает URL-адреса pkg: из node_modules в соответствии со стандартным алгоритмом разрешения Node.js.

Импортер пакетов Node.js экспонируется как класс, который можно добавить к параметру importers.

constsass = require('sass');
sass.compileString('@use "pkg:vuetify', {
importers: [newsass.NodePackageImporter()]
});

Создание пакетов Sass

Авторы пакетов могут контролировать, что экспонируется их пользователям, через свой package.json манифест. Рекомендуемый метод — добавить условный экспорт sass в package.json.

// node_modules/uicomponents/package.json
{
"exports": {
".": {
"sass": "./src/scss/index.scss",
"import": "./dist/js/index.mjs",
"default": "./dist/js/index.js"
}
}
}

Это позволяет пользователю пакета написать @use "pkg:uicomponents", чтобы загрузить файл по адресу node_modules/uicomponents/src/scss/index.scss.

Импортер пакетов Node.js поддерживает различные форматы, поддерживаемые точками входа пакетов Node.js package entry points, позволяя авторам экспонировать несколько подпутей.

// node_modules/uicomponents/package.json
{
"exports": {
".": {
"sass": "./src/scss/index.scss",
},
"./colors.scss": {
"sass": "./src/scss/_colors.scss",
},
"./theme/*.scss": {
"sass": "./src/scss/theme/*.scss",
},
}
}

Это позволяет пользователю пакета написать:

  • @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.

// node_modules/uicomponents/package.json
{
"sass": "./src/scss/index.scss",
}

Это позволяет пользователю написать @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";.

Иерархия

  • NodePackageImporter
  • Defined in js-api-doc/importer.d.ts:421
Индекс

Конструкторы

конструктор

Свойства

[nodePackageImporterKey]

Конструкторы

конструктор

  • new NodePackageImporter(entryPointDirectory?: string): NodePackageImporter
  • У импортера NodePackageImporter есть необязательный entryPointDirectory параметр, который представляет собой каталог, в котором импортер Node Package должен начинать поиск при разрешении pkg: URL-адресов в источниках, отличных от файлов на диске. Он будет использоваться как parentURL в алгоритме разрешения модулей Node.

    Для того, чтобы импортер пакетов Node нашел пакет, он должен находиться внутри папки node_modules, расположенной в entryPointDirectory или в одном из ее родительских каталогов, вплоть до корня файловой системы.

    Относительные пути будут разрешаться относительно текущей рабочей директории. Если путь не указан, он по умолчанию устанавливается в родительский каталог точки входа Node.js. Если таковой отсутствует, будет выброшено исключение.

    Параметры

    • Optional entryPointDirectory: string

    Возвращает NodePackageImporter

    • Defined in js-api-doc/importer.d.ts:441

Свойства

Private Readonly [nodePackageImporterKey]

[nodePackageImporterKey]: true

Используется для отличия этого типа от любого произвольного объекта.

  • Defined in js-api-doc/importer.d.ts:423
sass
  • Compile
    • AsyncCompiler
    • Compiler
    • CompileResult
    • compile
    • compileAsync
    • compileString
    • compileStringAsync
    • initAsyncCompiler
    • initCompiler
  • Options
    • Options
    • StringOptions
    • OutputStyle
    • StringOptionsWithImporter
    • StringOptionsWithoutImporter
    • Syntax
  • Logger
    • Logger
      • silent
    • Logger
    • SourceLocation
    • SourceSpan
    • LoggerWarnOptions
  • Importer
    • NodePackageImporter
    • FileImporter
    • Importer
    • ImporterResult
  • Функция пользовательского определения
    • CalculationInterpolation
    • CalculationOperation
    • SassArgumentList
    • SassBoolean
    • SassCalculation
    • SassColor
    • SassFunction
    • SassList
    • SassMap
    • SassMixin
    • SassNumber
    • SassString
    • Value
    • CalculationOperator
    • CalculationValue
    • CustomFunction
    • ListSeparator
    • sassFalse
    • sassNull
    • sassTrue
  • Другое
    • Exception
    • CanonicalizeContext
    • Deprecations
    • LegacyFileOptions
    • ChannelName
    • ChannelNameHsl
    • ChannelNameHwb
    • ChannelNameLab
    • ChannelNameLch
    • ChannelNameRgb
    • ChannelNameXyz
    • ColorSpaceHsl
    • ColorSpaceHwb
    • ColorSpaceLab
    • ColorSpaceLch
    • ColorSpaceRgb
    • ColorSpaceXyz
    • GamutMapMethod
    • HueInterpolationMethod
    • KnownColorSpace
    • PolarColorSpace
    • PromiseOr
    • RectangularColorSpace
    • info
  • Legacy
    • types
      • Boolean
      • Color
      • Error
      • List
      • Map
      • Null
      • Number
      • String
    • LegacyException
    • LegacyImporterThis
    • LegacyPluginThis
    • LegacyResult
    • LegacySharedOptions
    • LegacyStringOptions
    • LegacyAsyncFunction
    • LegacyAsyncFunctionDone
    • LegacyAsyncImporter
    • LegacyFunction
    • LegacyImporter
    • LegacyImporterResult
    • LegacyOptions
    • LegacySyncFunction
    • LegacySyncImporter
    • LegacyValue
    • FALSE
    • NULL
    • TRUE
    • render
    • renderSync
  • Сообщения
    • Версия
    • Deprecation
    • DeprecationOrId
    • DeprecationStatus
    • deprecations

© 2006–2025 the Sass team, and numerous contributors
Licensed under the MIT License.
https://sass-lang.com/documentation/js-api/classes/NodePackageImporter

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API