43

GitHub - egoist/import-http: Import modules from URL instead of local node_modul...

 5 years ago
source link: https://github.com/egoist/import-http
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

logo


NPM version NPM downloads CircleCI donate chat

Please consider donating to this project's author, EGOIST, to show your ❤️ and support.

Introduction

  • Imports source code URLs! Like <script type="module"> and Deno but implemented in webpack. Embracing the future :)

    import template from 'https://unpkg.com/lodash/template'
    
    console.log(template(`Hello <%= name %>`)({ name: 'EGOIST' }))

    Remote code is fetched and cached on first build, and never updated until you use the reload option. See more about Caching.

  • No more node_modules bloat, no dependency to install.

image

Install

yarn add import-http --dev

Usage

Webpack

In your webpack.config.js:

const ImportHttpWebpackPlugin = require('import-http/webpack')

module.exports = {
  plugins: [new ImportHttpWebpackPlugin()]
}

That's it, try following code:

import React from 'https://unpkg.com/react'
import Vue from 'https://unpkg.com/vue'

console.log(React, Vue)

Run webpack and it just works.

Rollup

In your rollup.config.js:

export default {
  plugins: [require('import-http/rollup')()]
}

Caching

Resources will be fetched at the very first build, then the response will be cached in ~/.import-http dir. You can use the reload option to invalidate cache:

const ImportHttpWebpackPlugin = require('import-http/webpack')

module.exports = {
  plugins: [
    new ImportHttpWebpackPlugin({
      reload: process.env.RELOAD
    })
  ]
}

Then run RELOAD=true webpack to update cache.

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

import-http © EGOIST, Released under the MIT License.
Authored and maintained by EGOIST with help from contributors (list).

Website · GitHub @EGOIST · Twitter @_egoistlily


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK