Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

svelte-preprocess-import-assets

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

svelte-preprocess-import-assets

Import assets in markup

  • 0.1.6
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

svelte-preprocess-import-assets

Import assets directly in the markup.

Convert this:

<h1>Look at this image</h1>
<img src="./assets/cool-image.png" alt="cool image" />

Into this:

<script>
  import ___ASSET___0 from './assets/cool-image.png'
</script>

<h1>Look at this image</h1>
<img src={___ASSET___0} alt="cool image" />

Usage

Install with your package manager:

npm install svelte-preprocess-import-assets

Include the preprocessor in your bundler's Svelte plugin preprocess option:

import importAssets from 'svelte-preprocess-import-assets'

svelte({ preprocess: [importAssets()] })

// or in svelte.config.js
const config = {
  preprocess: [importAssets()],
  // ... other svelte options
};

Here is more information on how to integrate it with your bundler.

API

The importAssets() function receives an optional options object for its first parameter. The object may contain these properties:

sources

  • Type: AssetSource[] | ((defaultSources: AssetSource[]) => AssetSource[])

    interface AssetSource {
      tag: string
      srcAttributes?: string[]
      srcsetAttributes?: string[]
      filter?: (metadata: FilterMetadata) => boolean
    }
    
    interface FilterMetadata {
      tag: string
      attribute: string
      value: string
      attributes: Record<string, string>
    }
    
  • Default: See DEFAULT_SOURCES in src/index.ts

    These are the sources to look for when scanning for imports. You can provide an entirely different list of sources, or declare a function to access the default sources and augment it. The supported tags and attributes are based on html-loader (except icon-uri).

    {
      sources: (defaultSources) => {
        return [
          ...defaultSources,
          // Also scan `data-src` and `data-srcset` of an img tag
          {
            tag: 'img',
            srcAttributes: ['data-src'],
            srcsetAttributes: ['data-srcset'],
          },
        ]
      },
    }
    

importPrefix

  • Type: string

  • Default: ___ASSET___

    The string to be prefixed for asset import names, e.g. ___ASSET___0 and ___ASSET___1.

http

  • Type: boolean

  • Default: false

    Whether a URL with http/https protocol should be converted to an import.

urlFilter

  • Type: () => boolean

    Whether a URL should be converted into an import.

    {
      // Include URLs with specific extensions only
      urlFilter: (url) => /\.(png|jpg|gif|webp)$/.test(url),
    }
    

Recipes

Ignore an element

<!-- svelte-preprocess-import-assets-ignore -->
<img src="./assets/cool-image.png" alt="cool image" />

Using with svelte-preprocess

Due to how Svelte applies preprocessors, using this with svelte-preprocess needs a bit more work to make sure we run this preprocessor only after svelte-preprocess finishes. There's an RFC to make this process clearer soon.

At the meantime, you can try one of these libraries:

Attributions

License

MIT

Keywords

FAQs

Package last updated on 08 Feb 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc