VirtualUrlPlugin
ë¤ìí ì íì ê°ì 모ëì ìì±í ì ììµëë¤. ì를 ë¤ì´ .ts, .json, .css ë±ì´ ìì¼ë©°, 기본ê°ì .jsì
ëë¤.
import webpack from "webpack";
new webpack.experiments.schemes.VirtualUrlPlugin({
myModule: 'export const msg = "from virtual module"',
});src/app.js
import { msg } from "virtual:myModule";
console.log(msg);Basic Example
ë¹ë ì 보를 ìì±íë ê°ì 모ëì ë§ëëë¤.
import webpack from "webpack";
new webpack.experiments.schemes.VirtualUrlPlugin({
buildInfo: {
source() {
return `export const buildTime = ${Date.now()}`;
},
version: true,
},
});src/app.js
import { buildTime } from "virtual:buildInfo";
console.log(`App version: ${buildTime}`);ì¬ì©ì ì ì ì¤í¤ë§ ì¬ì©
import webpack from "webpack";
new webpack.experiments.schemes.VirtualUrlPlugin(
{
myModule: 'export const msg = "from virtual module"',
},
"v",
);src/app.js
import { msg } from "v:myModule";
console.log(msg);Advanced Example
ë¤ìí ì íì ê°ì 모ëì ì¬ë¬ ê° ìì±í©ëë¤.
import webpack from "webpack";
new webpack.experiments.schemes.VirtualUrlPlugin({
myCssModule: {
type: ".css",
source: "body{background-color: powderblue;}",
},
myJsonModule: {
type: ".json",
source: '{"name": "virtual-url-plugin"}',
},
});src/app.js
import json from "virtual:myJsonModule";
import "virtual:myCssModule";ë¼ì°í íì¼ì ê°ìíí©ëë¤.
import path from "node:path";
import { fileURLToPath } from "node:url";
import webpack from "webpack";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const watchDir = path.join(__dirname, "./src/routes");
new webpack.experiments.schemes.VirtualUrlPlugin({
routes: {
source(loaderContext) {
// Use addContextDependency to monitor the addition or removal of subdirectories in watchDir to trigger the rebuilding of virtual modules.
loaderContext.addContextDependency(watchDir);
const files = fs.readdirSync(watchDir);
return `
export const routes = {
${files.map((key) => `${key.split(".")[0]}: () => import('./src/routes/${key}')`).join(",\n")}
}
`;
},
},
});src/app.js
import { routes } from "virtual:routes";Options
module.type(string): ê°ì 모ëì ì½í ì¸ ì í.
-
module.source(string | ((loaderContext: import('webpack').LoaderContext<T>) => Promise<string> | string)): ê°ì 모ëì ì½í ì¸ ë¥¼ ìì±íë í©í 리 í¨ì. -
module.version(boolean | string | () => string): 무í¨íê° ë°ìíë©´ ë²ì ì ê°ì´ ì´ì ê³¼ ë¤ë¥¼ ê²½ì° ìì¤ í¨ìê° ë¤ì í¸ì¶ë©ëë¤. trueë¡ ì¤ì íë©´ íì í¸ë¦¬ê±°ë©ëë¤. -
schema(string): ì¬ì©ì ì ì ê°ë¥í ê°ì 모ë ì¤í¤ë§, 기본ê°ìvirtualì ëë¤.



