Import modules from URL instead of local node_modules
Branch: master
Clone or download
Latest commit 42ce89f Jan 31, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example feat: add rollup plugin Jan 28, 2019
lib feat: use home .cache dir, closes #4 Jan 31, 2019
test feat: add rollup plugin Jan 28, 2019
.editorconfig init Jan 28, 2019
.gitattributes init Jan 28, 2019
.gitignore init Jan 28, 2019
.prettierrc init Jan 28, 2019
LICENSE init Jan 28, 2019
README.md docs: update readme Jan 31, 2019
circle.yml init Jan 28, 2019
package.json feat: use home .cache dir, closes #4 Jan 31, 2019
rollup.js feat: add rollup plugin Jan 28, 2019
webpack.js feat: add rollup plugin Jan 28, 2019
yarn.lock feat: use home .cache dir, closes #4 Jan 31, 2019

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 ~/.cache/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