steal
2.3.0
除了一系列插件之外, StealJS还包含两个主要组件:
steal
:一个可扩展的通用模块加载器。steal-tools
:用于构建、转换和导出模块格式的实用程序。这是steal
存储库。有关tools
,请参阅 https://github.com/stealjs/steal-tools。
steal
steal
是独一无二的,因为它可以加载以 ES6、AMD 和 CommonJS 格式定义的 JavaScript 模块(与大多数其他模块加载器不同,它们一次仅支持其中一种格式)。
在 JavaScript 中,“模块”一词指的是独立的、可重用的代码的小单元。它们是许多 JavaScript 设计模式的基础,在 ES6 中可以如下所示:
export function hello ( ) {
console . log ( 'hello' ) ;
}
export function goodbye ( ) {
console . log ( 'goodbye' ) ;
}
或者像 AMD 中这样:
define ( [ ] , function ( ) {
return {
hello : function ( ) {
console . log ( 'hello' ) ;
} ,
goodbye : function ( ) {
console . log ( 'goodbye' ) ;
}
} ;
} ) ;
或者像这样的 CommonJS:
function hello ( ) {
console . log ( 'hello' ) ;
}
function goodbye ( ) {
console . log ( 'goodbye' ) ;
}
module . exports = {
hello : hello ,
goodbye : goodbye
}
steal
支持所有这些格式,因此您可以在项目中混合和匹配模块:
// ES6
import { hello , goodbye } from "greetings" ;
// AMD
define ( [ "greetings" ] , function ( greetings ) { ... } ) ;
// CommonJS
var hello = require ( 'greetings' ) . hello ;
var goodbye = require ( 'greetings' ) . goodbye ;
此外,插件可以加载您可能想到的任何模块类型,例如 Less 或 CSS。任何人都可以编写一个用于steal
插件来扩展其核心模块加载功能。
steal
StealJS 组织维护着一些流行的插件,这些插件扩展和增强了steal
(以及随后的steal-tools
)的模块加载功能,例如:
例如,Less 插件允许像 JavaScript 模块一样加载 Less 文件:
// ES6
import "style.less" ;
// AMD
define ( [ "style.less" ] , function ( ) { ... } ) ;
// CommonJS
require ( "style.less" ) ;
// steal
steal ( "style.less" )
想要为另一种格式创建插件?请参阅编写插件。
有关 StealJS 的更多信息,请访问 StealJS.com。
有关贡献和开发的信息,请参阅 StealJS.com 上的贡献指南。