
Security News
npm Adopts OIDC for Trusted Publishing in CI/CD Workflows
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
babel-plugin-system-import-transformer
Advanced tools
Babel plugin that replaces System.import with the equivalent UMD pattern
Babel plugin that replaces import() & System.import() with the equivalent UMD pattern
import('./utils/serializer').then(function(module){
console.log(module);
});
// AND
System.import('./utils/serializer').then(function(module){
console.log(module);
});
to
new Promise(function (resolve, reject) {
var global = window;
if (typeof global.define === 'function' && global.define.amd) {
global.require(['utilsSerializer'], resolve, reject);
} else if (typeof module !== 'undefined' && (module.exports && typeof require !== 'undefined') ||
typeof module !== 'undefined' && (module.component && (global.require && global.require.loader === 'component'))) {
resolve(require('./utils/serializer'));
} else {
resolve(global['utilsSerializer']);
}
}).then(function(module){
console.log(module);
});
Notes:
npm install babel-plugin-system-import-transformer
Add "system-import-transformer" to your plugins
argument or inside the plugins
options of your Gruntfile
.
// in .babelrc
{
"plugins": [
"system-import-transformer"
]
}
// in grunt.js
babel: {
options: {
plugins: ["system-import-transformer"]
}
}
The babel's getModuleId option (if defined) is used for the AMD and Global Module import.
babel: {
options: {
moduleIds: true,
getModuleId: function(moduleName) {
var files = {
'src/utils/serializer': 'utilsSerializer'
};
return files[moduleName] || moduleName.replace('src/', '');
},
plugins: ['system-import-transformer']
}
}
CommonJS specific options.
Type: Boolean
Values: [false
/true
]
When set to true
, all CommonJS import statements will use Webpack's require.ensure()
syntax. This enables dynamic module loading in CommonJS (Webpack) and works both for the UMD
and (of course) CommonJS
module target types.
{
"plugins": [
["system-import-transformer", { "commonJS": { "useRequireEnsure": true } }]
]
}
// the CommonJS code part will look like:
new Promise(function (resolve) {
require.ensure([], function (require) {
resolve(require('./utils/serializer'));
});
}).then(function(module){ console.log(module); });
Type: String
Values: [UMD
/amd
/common
]
Example
Specifies the target compilation module system. When set configured to an option other than UMD
then system-import-transformer
will omit the module type detection code and just insert the appropriate require statement wrapped with a Promise
.
// targeting AMD
{
"plugins": [
["system-import-transformer", { "modules": "amd" }]
]
}
// will emit an AMD specific code like:
new Promise(function (resolve, reject) {
var global = window;
global.require(['utilsSerializer'], resolve, reject);
}).then(function(module){ console.log(module); });
// targeting CommonJS
{
"plugins": [
["system-import-transformer", { "modules": "common" }]
]
}
// will emit a CommonJS specific code like:
new Promise(function (resolve, reject) {
resolve(require('./utils/serializer'));
}).then(function(module){ console.log(module); });
Syntax specific options.
Type: Boolean
Values: [true
/false
]
Example
When set to false
, babel will not transpile import()
statements.
Type: Boolean
Values: [true
/false
]
Example
When set to false
, babel will not transpile System.import()
statements.
FAQs
Babel plugin that replaces System.import with the equivalent UMD pattern
The npm package babel-plugin-system-import-transformer receives a total of 24,099 weekly downloads. As such, babel-plugin-system-import-transformer popularity was classified as popular.
We found that babel-plugin-system-import-transformer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
Research
/Security News
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.