All Projects → nodejs → loaders

nodejs / loaders

Licence: MIT license
ECMAScript Modules Loaders

Projects that are alternatives of or similar to loaders

Webpack
A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows for loading parts of the application on demand. Through "loaders", modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.
Stars: ✭ 60,034 (+92260%)
Mutual labels:  loaders, esm
webpacker
🔸 Webpack configuration manager
Stars: ✭ 18 (-72.31%)
Mutual labels:  loaders, esm
Debt-Manager
A personal app to store people that owe you money or you owe money to. "Mo Money Mo Problems" 🎵 - The Notorious B.I.G. 😎
Stars: ✭ 22 (-66.15%)
Mutual labels:  loaders
babel-plugin-rewire-exports
Babel plugin for stubbing [ES6, ES2015] module exports
Stars: ✭ 62 (-4.62%)
Mutual labels:  esm
Vue Wait
Complex Loader and Progress Management for Vue/Vuex and Nuxt Applications
Stars: ✭ 1,869 (+2775.38%)
Mutual labels:  loaders
react-awesome-loaders
🚀 High quality, super responsive and completely customisable Loading Animations to insert into your website with single line of code.
Stars: ✭ 146 (+124.62%)
Mutual labels:  loaders
eleventy-load
Resolve dependencies and post-process files in your Eleventy project
Stars: ✭ 28 (-56.92%)
Mutual labels:  loaders
LoadersPack-Android
Android LoadersPack - a replacement of default android material progressbar with different loaders
Stars: ✭ 119 (+83.08%)
Mutual labels:  loaders
Yakhont
The high-level Android components library for data loading, location, lifecycle callbacks and more.
Stars: ✭ 13 (-80%)
Mutual labels:  loaders
graphql-dependency
Cross service dependencies for GraphQL API with underlying @imqueue services
Stars: ✭ 17 (-73.85%)
Mutual labels:  loaders
Nvactivityindicatorview
A collection of awesome loading animations
Stars: ✭ 10,031 (+15332.31%)
Mutual labels:  loaders
vue-spinners-css
Amazing collection of Vue spinners components with pure css.
Stars: ✭ 50 (-23.08%)
Mutual labels:  loaders
vitext
The Next.js like React framework for better User & Developer experience!
Stars: ✭ 376 (+478.46%)
Mutual labels:  esm
jquery.skeleton.loader
A jQuery plugin to make screen skeleton loader.
Stars: ✭ 65 (+0%)
Mutual labels:  loaders
resolve-typescript-plugin
webpack plugin to resolve TypeScript files when importing with js file extension in ESM projects
Stars: ✭ 39 (-40%)
Mutual labels:  esm
Flutter spinkit
✨ A collection of loading indicators animated with flutter. Heavily Inspired by http://tobiasahlin.com/spinkit.
Stars: ✭ 2,411 (+3609.23%)
Mutual labels:  loaders
Text Spinners
Pure text, CSS only, font independent, inline loading indicators
Stars: ✭ 2,728 (+4096.92%)
Mutual labels:  loaders
motion-hooks
A simple Hooks wrapper over Motion One, An animation library, built on the Web Animations API for the smallest filesize and the fastest performance.
Stars: ✭ 93 (+43.08%)
Mutual labels:  esm
tailwind-layouts
Collection of Tailwind Layouts
Stars: ✭ 53 (-18.46%)
Mutual labels:  esm
react-native-animated-loader
🍭 A React Native Loader Component which uses Airbnb's Lottie for beautiful loader animations.
Stars: ✭ 165 (+153.85%)
Mutual labels:  loaders

Loaders Team

Purpose

The Node.js Loaders Team maintains and actively develops the ECMAScript Modules Loaders implementation in Node.js core.

History

This team is spun off from the Modules team. We aim to implement the use cases that went unfulfilled by the initial ES modules implementation that can be achieved via loaders.

Project

Status

Milestone 1: Parity with CommonJS

Before extending into new frontiers, we need to improve the loaders API enough that users can do just about everything they could do in CommonJS with ESM + loaders. (Outside of loaders scope, but related to the goal of parity between CommonJS and ESM, is finishing and stabilizing --experimental-vm-modules.)

  • Finish nodejs/node#37468 / nodejs/node#35524, simplifying the hooks to resolve, load and globalPreloadCode.

  • Refactor the internal Node ESMLoader hooks into resolve and load. Node’s internal loader already has no-ops for transformSource and getGlobalPreloadCode, so all this really entails is wrapping the internal getFormat and getSource with one function load (getFormat is used internally outside ESMLoader, so they cannot merely be merged). nodejs/node#37468

  • Refactor Node’s internal ESM loader to move its exception on unknown file types from within resolve (on detection of unknown extensions) to within load (if the resolved extension has no defined translator). nodejs/node#37468

  • Implement chaining as described in the design, where the default<hookName> becomes next and references the next registered hook in the chain. nodejs/node#42623

  • Have loaders apply to subsequent loaders. https://github.com/nodejs/loaders/blob/main/doc/design/proposal-ambient-loaders.md, nodejs/node#43772

  • Move loaders off thread. nodejs/node#43658, nodejs/node#44710

    We hope that moving loaders off thread will allow us to preserve an async resolve hook while supporting the sync import.meta.resolve API. If that turns out to be unachievable, however, then:

    • Convert resolve from async to sync nodejs/node#43363

      • Add an async resolve to module module

      • Consider an API for async operations before resolution begins, such as preImport #89

Milestone 2: Usability improvements

  • Provide a way to register loaders without a command-line flag, for example via a "loaders" field in package.json (#98 or nodejs/node#43973).

  • Support loading source when the return value of load has format: 'commonjs'. See nodejs/node#34753 (comment) and https://github.com/nodejs/loaders-test/blob/835506a638c6002c1b2d42ab7137db3e7eda53fa/coffeescript-loader/loader.js#L45-L50.

  • First-class support for import maps that doesn’t require a custom loader.

  • Add helper/utility functions to reduce boilerplate in user-defined hooks.

    • Start with helpers for retrieving the closest parent package.json associated with a specifier string; and for retrieving the package.json for a particular package by name (which is not necessarily the same result).

    • Potentially include all the functions that make up the ESM resolution algorithm as defined in the spec. Create helper functions for each of the functions defined in that psuedocode: esmResolve, packageImportsResolve, packageResolve, esmFileFormat, packageSelfResolve, readPackageJson, packageExportsResolve, lookupPackageScope, packageTargetResolve, packageImportsExportsResolve, patternKeyCompare. (Not necessarily all with these exact names, but corresponding to these functions from the spec.)

    • Follow up with similar helper functions that make up what happens within Node’s internal load. (Definitions to come.)

  • Helper/utility functions to allow access to the CommonJS named exports discovery algorithm (cjs-module-lexer).

  • Hooks for customizing the REPL, including transpilation and tab completion. Support users pasting TypeScript (or CoffeeScript or whatever) into the REPL and having just as good an experience as with plain JavaScript.

    • Support top-level await in the REPL API, if possible.
  • Hooks for customizing the stack trace (in other words, a hook version of Error.prepareStackTrace). This would allow transpiled languages to improve the output.

  • Hooks for customizing filesystem calls, for allowing things like virtual filesystems or archives treated as volumes.

  • Inherit configuration blob to worker threads and child processes.

  • Provide a way for application code to communicate with loaders code.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].