# Installation

**MQL** is available as [](https://www.npmjs.com/package/@microlink/react)

npm package

:

    npm install @microlink/mql --save

The package is fully typed, and it has been designed for being consumed in different environments and ways.

### [From Node.js](https://microlink.io/docs/mql/getting-started/installation#from-nodejs)

Any Node.js above v16.14 is supported. We recommend running it using the active TLS. Check [](https://nodejs.dev/en/about/releases/)

Node.js releases

to know more.

Just require `@microlink/mql` dependency from your code:

    const mql = require('@microlink/mql')

    const { data } = await mql('https://kikobeats.com', {
      data: {
        avatar: {
          selector: '#avatar',
          type: 'image',
          attr: 'src'
        }
      }
    })

    console.log(
      `The avatar URL is '${data.avatar.url}' (${data.avatar.size_pretty})`
    )

The same build is available for CommonJS and ESM.

### [From Edge](https://microlink.io/docs/mql/getting-started/installation#from-edge)

If you are using [](https://workers.cloudflare.com/)

CloudFlare Workers

, [](https://vercel.com/features/edge-functions)

Vercel Edge Functions

, [](https://deno.com/)

Deno

, or any other provider that supports [](https://wintercg.org/)

WinterCG

, the Node.js ESM build is implemented on top of Web Standard APIs, nothing extra should be done.

Just import `@microlink/mql/lightweight` from your code:

    import mql from '@microlink/mql/lightweight'

    const { data } = await mql('https://kikobeats.com', {
      data: {
        avatar: {
          selector: '#avatar',
          type: 'image',
          attr: 'src'
        }
      }
    })

    console.log(
      `The avatar URL is '${data.avatar.url}' (${data.avatar.size_pretty})`
    )

The same build is available for CommonJS and ESM.

### [From Browser](https://microlink.io/docs/mql/getting-started/installation#from-browser)

Last but not least, MQL can be loaded from any browser directly from HTML markup:

    <script type="module">
      import mql from 'https://esm.sh/@microlink/mql'

      const { data } = await mql('https://kikobeats.com', {
        data: {
          avatar: {
            selector: '#avatar',
            type: 'image',
            attr: 'src',
          }
        }
      })

      console.log(`The avatar URL is '${data.avatar.url}' (${data.avatar.size_pretty})`)
    </script>