读vite源码之magic-string

553 阅读1分钟

magic-string是一个用于转换、编辑和操作字符串的库。

安装

npm install magic-string

基本使用

import MagicString from 'magic-string';

const ms = new MagicString('const a = 1;');

// 添加新代码
ms.append('const b = 2;'); 

// 替换代码
ms.overwrite(6, 10, 'two'); 

// 删除代码  
ms.remove(1, 6);

// 获取修改后的代码
console.log(ms.toString());

// 'const b = 2; const two = 1;'

插入/替换

ms.insert(7, 'my '); 
// 'conmyst b = 2;'

ms.overwrite(1, 4, 'your');
// 'yourst b = 2;' 

sourcemap

ms.generateMap({ 
  includeContent: true
});

// 返回 sourcemap 对象

过渡/动态修改

ms.overwrite('foo', 'bar');

ms.intro = 'before';
ms.outro = 'after';

console.log(ms.toString());

// 'beforebarafter'

搜索/替换模式

ms.renameProperties({
  zlib: 'somethingElse' 
});

动态删除

ms.lazy = true;

ms.remove(0, 10);
// 不会立即删除,需要调用 ms.toString() 

总之 magic-string提供了很多有用的API用于编辑和操作字符串,对需要处理源代码的场景很有帮助。