mwstake / mediawiki-component-thirdpartyresources
提供ResourceLoader模块定义,允许包含第三方预编译资源(JS/CSS)
Requires
Requires (Dev)
- jakub-onderka/php-console-highlighter: 0.4.0
- jakub-onderka/php-parallel-lint: 1.0.0
- mediawiki/mediawiki-codesniffer: 29.0.0
- mediawiki/minus-x: 1.0.0
- phpunit/phpunit: ^6.5
This package is auto-updated.
Last update: 2024-09-22 09:13:34 UTC
README
MediaWiki的第三方资源
提供ResourceLoader模块定义,允许包含第三方预编译资源(JS/CSS)。
此代码旨在在MediaWiki框架中使用。请勿在MediaWiki之外尝试使用它。
在MediaWiki扩展中使用
将 "mwstake/mediawiki-component-thirdpartyresources": "~1.0"
添加到您的 composer.json
文件的 require
部分。
需要显式初始化。这可以通过以下方式实现:
- 要么在您的
extension.json
/skin.json
中添加"callback": "mwsInitComponents"
- 或者在你扩展/皮肤的定制
callback
方法中调用mwsInitComponents();
另请参阅 mwstake/mediawiki-componentloader
。
可选:设置 package.json
在MediaWiki扩展/skins中,通常仅使用 package.json
进行CI任务,例如 eslint
。因此,通常只有一个 "devDependecies"
条目,并且 node_modules/
目录通常被排除在源代码管理之外,例如通过 .gitignore
。
如果使用 npm
来拉取实际依赖,建议将 "dist" 文件(夹)复制到扩展/皮肤的 resources/
(或 modules/
)目录。这可以通过一个 scripts.postinstall
条目轻松完成。
示例 package.json
"scripts": { "postinstall": "cp node_modules/some-package/dist/some-package.min.js resources/lib/" }, "dependencies": { "some-package": "^1.0.0" }
设置ResourceLoader模块
MediaWiki ResourceLoader可能会破坏预包装的JS/CSS文件,因为它应用了“压缩”。此外,它可能缺少正确的 module.exports
语句,以使第三方代码对消费代码可用。
为了克服这些问题,可以使用 "ResourceModule"
定义中的 "class"
属性,如下所示:
"ResourceModules": { "ext.SomePackageComponent": { "class": "MWStake\\MediaWiki\\Component\\ThirdPartyResources\\ResourceLoader\\DistFiles", "packageFiles": [ "lib/some-package.min.js" ] } }, "ResourceFileModulePaths": { "localBasePath": "resources", "remoteExtPath": "MyExtension/resources" },
如果需要特殊的 module.exports
,它可以在 "module.exports"
属性中指定。
"ResourceModules": { "ext.VTreeView": { "class": "MWStake\\MediaWiki\\Component\\ThirdPartyResources\\ResourceLoader\\DistFiles", "module.exports": "SomePackageComponent", "packageFiles": [ "lib/some-package.min.js" ] } },