vite-plugin-prismjs
Advanced tools
Comparing version
@@ -8,50 +8,20 @@ "use strict"; | ||
const core_1 = require("@babel/core"); | ||
const pluginutils_1 = require("@rollup/pluginutils"); | ||
const babel_plugin_prismjs_1 = __importDefault(require("babel-plugin-prismjs")); | ||
function stripScript(content) { | ||
const result = content.match(/<(script)>([\s\S]+)<\/\1>/); | ||
return result && result[2] ? result[2].trim() : ''; | ||
} | ||
function prismjsPlugin(options = {}) { | ||
let needSourceMap = true; | ||
function transform(id, code) { | ||
return core_1.transformSync(code, { | ||
babelrc: false, | ||
ast: true, | ||
plugins: [[babel_plugin_prismjs_1.default, options]], | ||
sourceMaps: needSourceMap, | ||
sourceFileName: id, | ||
configFile: false, | ||
}); | ||
} | ||
return { | ||
name: 'prismjs', | ||
enforce: 'pre', | ||
configResolved(config) { | ||
needSourceMap = config.command === 'serve' || !!config.build.sourcemap; | ||
}, | ||
transform(code, id) { | ||
const filter = pluginutils_1.createFilter(/\.[jt]s$/); | ||
const vueFilter = pluginutils_1.createFilter(/\.vue$/); | ||
if (vueFilter(id)) { | ||
const script = stripScript(code); | ||
if (script) { | ||
const result = transform(id, script); | ||
if (result) { | ||
return { | ||
code: code.replace(script, result.code), | ||
map: result.map, | ||
}; | ||
} | ||
} | ||
if (/\.(?:[jt]sx?|vue)$/.test(id) && !/node_modules\/vite/.test(id)) { | ||
const result = core_1.transformSync(code, { | ||
ast: true, | ||
plugins: [[babel_plugin_prismjs_1.default, options]], | ||
sourceFileName: id, | ||
}); | ||
if (!result) | ||
return; | ||
return { | ||
code: result.code, | ||
map: result.map | ||
}; | ||
} | ||
else if (filter(id)) { | ||
const result = transform(id, code); | ||
if (result) { | ||
return { | ||
code: result.code, | ||
map: result.map, | ||
}; | ||
} | ||
} | ||
}, | ||
@@ -58,0 +28,0 @@ }; |
{ | ||
"name": "vite-plugin-prismjs", | ||
"version": "0.0.7", | ||
"version": "0.0.8-beta.0", | ||
"license": "MIT", | ||
@@ -26,3 +26,3 @@ "author": "Kang Chen", | ||
"dependencies": { | ||
"@babel/core": "^7.14.6", | ||
"@babel/core": "^7.15.5", | ||
"babel-plugin-prismjs": "^2.1.0" | ||
@@ -29,0 +29,0 @@ }, |
@@ -1,2 +0,2 @@ | ||
# vite-plugun-prismjs [](https://npmjs.com/package/vite-plugun-prismjs) | ||
# vite-plugin-prismjs [](https://npmjs.com/package/vite-plugin-prismjs) | ||
@@ -3,0 +3,0 @@ ## Options |
Sorry, the diff of this file is not supported yet
3177
-38.02%40
-42.86%Updated