ë¤ìí ì íì ê°ì 모ëì ìì±í ì ììµëë¤. ì를 ë¤ì´ .ts, .json, .css ë±ì´ ìì¼ë©°, 기본ê°ì .jsì
ëë¤.
const webpack = require('webpack');
new webpack.experiments.schemes.VirtualUrlPlugin({
myModule: `export const msg = "from virtual module"`,
});src/app.js
import { msg } from 'virtual:myModule';
console.log(msg);ë¹ë ì 보를 ìì±íë ê°ì 모ëì ë§ëëë¤.
const webpack = require('webpack')
new webpack.experiments.schemes.VirtualUrlPlugin({
buildInfo: {
source: () {
return `export const buildTime = ${+new Date()}`
},
version: true
}
});src/app.js
import { buildTime } from 'virtual:buildInfo';
console.log('App version: ', buildTime);ì¬ì©ì ì ì ì¤í¤ë§ ì¬ì©
const webpack = require('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);ë¤ìí ì íì ê°ì 모ëì ì¬ë¬ ê° ìì±í©ëë¤.
const webpack = require('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';ë¼ì°í íì¼ì ê°ìíí©ëë¤.
const webpack = require('webpack');
const path = require('path');
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';module.type (string): ê°ì 모ëì ì½í
ì¸ ì í.module.source (string | ((loaderContext: import('webpack').LoaderContext<T>) => Promise<string> | string)): ê°ì 모ëì ì½í
ì¸ ë¥¼ ìì±íë í©í 리 í¨ì.
module.version(boolean | string | () => string): 무í¨íê° ë°ìíë©´ ë²ì ì ê°ì´ ì´ì ê³¼ ë¤ë¥¼ ê²½ì° ìì¤ í¨ìê° ë¤ì í¸ì¶ë©ëë¤. trueë¡ ì¤ì íë©´ íì í¸ë¦¬ê±°ë©ëë¤.
schema (string): ì¬ì©ì ì ì ê°ë¥í ê°ì 모ë ì¤í¤ë§, 기본ê°ì virtualì
ëë¤.