piral-systemjs-utils
v0.15.13
Published
Utilities for providing SystemJS support to Piral.
Downloads
37
Maintainers
Readme
Piral SystemJS Utils ·
This is a utility library that can be used for providing support to SystemJS modules.
What piral-systemjs-utils
offers are helper functions to actually support SystemJS modules for pilets incl. SystemJS compatible import maps as feed source.
Installation
This should only be installed as a dependency (dependencies
) as it is only designed mostly for runtime/consumption by Piral together with piral-cli-webpack
or another bundler that is SystemJS compatible.
If you'd love to use yarn:
yarn add piral-systemjs-utils
Alternatively, npm works reliably, too:
npm i --save piral-systemjs-utils
Setup
Provide your pilets via import maps in the index.html:
<script type='systemjs-importmap' src="https://feed.piral.cloud/api/v1/pilet/my-import-maps"></script>
Make sure that the Webpack configuration is actually extended using the System
calls.
A simple way for achieving this is to create a file called webpack.config.js in the Piral instance's root folder. It may look as follows:
module.exports = function (config) {
config.module.rules.push({
parser: {
system: false,
},
});
return config;
};
This is everything for setting up SystemJS in Piral.
Usage
App Shell Authors
Using the configured SystemJS import maps is simple. When your Piral instance is created supply the loadPilet
and requestPilets
functions from the helper library.
An example:
import { createInstance } from 'piral';
import { loadPilet, requestPilets } from 'piral-systemjs-utils';
const instance = createInstance({
loadPilet,
requestPilets,
// ...
});
// render instance in <Piral /> etc.
By default, this will assume that all entries of the previously supplied import maps are pilets. Everything will be loaded and resolved via SystemJS.
Pilet Authors
Pilet authors don't need to know anything besides that the build system has support SystemJS. Therefore, like with the Piral instance, pilets need to be created via piral-cli-webpack
or another bundler supporting SystemJS.
The most straight forward way to apply SystemJS to your pilets is to use --schema v2
(which is the default schema) when building or publishing:
# build the current pilet
npx pilet build --schema v2
# publish the current build with a fresh build
npx pilet publish --fresh --schema v2 --url <feed-service-url> --api-key <your-api-key>
License
Piral is released using the MIT license. For more information see the license file.