深入理解 dev 命令
Modern.js Module 提供的 dev
命令主要用于代码的调试。
命令运行的整体流程
- 当执行
dev
命令的时候,Modern.js Module 开始寻找是否存在可以执行的调试工具或者任务。调试工具或者任务就是类似 doc 这样的 Modern.js Module 调试工具插件。
- 当发现存在一个调试工具的时候,则会立即执行它。
- 当发现多个调试工具的时候,则显示调试工具列表菜单。可以通过选择某个调试工具对应的名称选项启动它。
- 当没有发现调试工具的时候,则告诉用户没有可用的调试工具。
我们除了可以执行 dev
命令以外,也可以通过 dev [调试工具名称]
的方式来直接启动调试工具或者任务。
扩展 dev 命令
如果需要扩展 dev 命令或者说提供自己的 Modern.js Module 调试工具插件,那么你需要先了解以下内容:
一般来说,实现一个什么都不做的调试工具,其实现代码以及相关配置如下:
export const myPlugin = (): CliPlugin<ModuleTools> => ({
name: 'do-nothing',
setup() {
return {
registerDev() {
return {
// 调试工具名称
name: 'do-nothing',
// 菜单显示内容
menuItem: {
name: 'DoNothing',
value: 'do-nothing',
},
// 定义的 dev 子命令
subCommands: ['donothing', 'dn'],
async action() {
// dev logic
console.info('Run build --watch, and do nothing.');
},
};
},
};
},
});
如果需要使用该调试工具插件,则需要在配置文件中增加它:
import doNothingPlugin from './plugins/do-nothing';
export default defineConfig({
plugins: [
//..
doNothingPlugin()
],
});
此时我们执行 dev
或者 dev do-nothing
命令的时候,就可以执行它了。在执行后,它会先执行监听模式的源码构建任务,并紧接着打印日志信息。
对于目前官方支持的调试工具和第三方支持的调试工具,可以在插件列表中查看。