在本仓库中使用module.exports
,你需要
To use module.exports
in this repository, you need to
-
确保目标 MediaWiki 的版本至少为 1.38
Ensure that the target MediaWiki version is at least 1.38 -
如果需要让仓库中的其他小工具使用导出的变量和方法,则应该在小工具的
*.d.ts
中声明相关类型,如:
Then, if you need other gadgets in this repository to use the exported variables and methods, you should declare the relevant types in the gadget's*.d.ts
, for example:
declare module 'ext.gadget.any_package' {
export function func(): void;
}
- 在入口文件中使用
export
导出变量和方法
Finally, useexport
to export variables and methods in the entry file:
const func = () => {};
export {func};
在本仓库中使用require()
,你需要
To use require()
in this repository, you need to
- 确保目标 MediaWiki 的版本至少为 1.38
Ensure that the target MediaWiki version is at least 1.38 - 在小工具对应的
definition.json
中,将需要导入的包添加为依赖项(dependencies
)
In the correspondingdefinition.json
of the gadget, add the required package as a dependency
{
"dependencies": ["@wikimedia/codex", "ext.gadget.any_package"],
// Other properties...
}
然后,运行以下命令
Then, run the following command
pnpm add <package-name>
如:
For example:
pnpm add @wikimedia/codex
如果需要导入的不是 npm 包或包名与 MiediaWiki 内置模块不同,则应该在导入前于小工具的*.d.ts
中声明相关类型,如:
If the imported package is not a npm package or the package name is different from MediaWiki built-in modules, you should declare the types in the *.d.ts
of the gadget before importing it. For example:
declare module 'ext.gadget.any_package' {
export function func(): void;
}
- 使用
import
来导入依赖项,如:
Finally, useimport
to import the dependency. For example:
import {CdxButton} from '@wikimedia/codex';
import {func} from 'ext.gadget.any_package';
console.log({
CdxButton,
func,
});
对于 MediaWiki 内置的一部分包,可以通过以下的方式使用:
For some MediaWiki built-in packages, you can use them as follows:
jquery.ui
、mediawiki.util
和oojs-ui-core
等“第一方”包
First-party packages such asjquery.ui
,mediawiki.util
, andoojs-ui-core
- 在小工具对应的
definition.json
中,将对应的包添加为依赖项(dependencies
)
In the correspondingdefinition.json
of the gadget, just add the used package as a dependency
- 在小工具对应的
{
"dependencies": ["jquery.ui", "mediawiki.util", "oojs-ui-core"],
// Other properties...
}
-
moment
- 目标 MediaWiki 的版本不低于 1.38
The target MediaWiki version is at least 1.38- 在小工具对应的
definition.json
中,将moment
添加为依赖项(dependencies
)
In the correspondingdefinition.json
of the gadget, add themoment
package as a dependency - 使用
import
来导入,如:
Useimport
. For example:
- 在小工具对应的
- 目标 MediaWiki 的版本不低于 1.38
{
"dependencies": ["moment"],
// Other properties...
}
import moment from 'moment';
console.log(moment.utc());
@wikimedia/codex
、vue
和pinia
等 Vue 相关的包
Vue-related packages such as@wikimedia/codex
,vue
andpinia
- 见文档
See documentation
- 见文档