An universal AMD Loader
npm install vscode-loaderAn universal Asynchronous Module Definition (AMD) Loader developed primarily to load VSCode's sources.
require.* Runs factory methods as soon as dependencies are resolved.
* Contains a CSS loader (vs/css).
* Contains a natural language strings loader (vs/nls).
* In a browser environment:
``html``
* In a node environment:javascript`
var loader = require('loader');
loader.config({
// ...
});
loader(['an/amd/module'], function(value) {
// code is loaded here
});baseUrl
* Supported config options:
* - The prefix that will be aplied to all modules when they are resolved to a locationpaths
* - Redirect rules for modules. The redirect rules will affect the module ids themselvesconfig
* - Per-module configurationcatchError
* - Catch errors when invoking the module factoriesrecordStats
* - Record statisticsurlArgs
* - The suffix that will be aplied to all modules when they are resolved to a locationonError
* - Callback that will be called when errors are encounteredignoreDuplicateModules
* - The loader will issue warnings when duplicate modules are encountered. This list will inhibit those warnings if duplicate modules are expected.isBuild
* - Flag to indicate if current execution is as part of a build.cspNonce
* - Allows setting a Content Security Policy nonce value on script tags created by the loader.nodeRequire
* - The main entry point node's requirenodeInstrumenter
* - An optional transformation applied to the source before it is loaded in node's vm
* Recording loading statistics for detailed script loading times:
`javascript`
require.config({
recordStats: true
});
// ...
console.log(require.getRecorder().getEvents());
* Extracting loading metadata for a bundler:
`javascript`
var loader = require('loader');
loader.config({
isBuild: true
});
// ...
console.log(loader.getBuildInfo());
To run the tests:
* code loading in node: npm run testnpm run simpleserver
* amd spec tests, unit tests & code loading in browser:
* http://localhost:9999/tests/run-tests.htm
* open
The project uses as a submodule the AMD compliance tests. The goal is to support as many tests without adding eval() or an equivalent. It is also not a goal to support loading CommonJS code:
* Basic AMD Functionality (basic)
* The Basic require() Method (require)
* Anonymous Module Support (anon)
* ~~CommonJS Compatibility (funcString)~~
* ~~CommonJS Compatibility with Named Modules (namedWrap)~~
* AMD Loader Plugins (plugins)
* ~~Dynamic Plugins (pluginsDynamic)~~
* ~~Common Config: Packages~~
* ~~Common Config: Map~~
* ~~Common Config: Module~~
* Common Config: Path
* ~~Common Config: Shim~~
* Clone the repository
* Run git submodule initgit submodule update
* Run npm install
* Run npm run watch1
* Compile in the background with and npm run watch2`
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.