vitejs / vite

Next generation frontend tooling. It's fast!
http://vitejs.dev
MIT License
67.57k stars 6.09k forks source link

Import.meta.glob did not work #5961

Closed jzyzxx closed 2 years ago

jzyzxx commented 2 years ago

Describe the bug

when i use the import.meta.glob,there are err logs: 午10:16:29 [vite] Internal server error: Invalid glob import syntax: pattern must start with "." or "/" (relative to project root) Plugin: vite:import-analysis File: D:/freedom/my-vue-app/src/views/index/index.vue 276| width: screen.width, 277| height: screen.height, 278| backgroundColor: "#2E8B57", | ^ 279| parent: "stage", 280| scene: [village], at err (D:\freedom\my-vue-app\node_modules\vite\dist\node\chunks\dep-85dbaaa7.js:20706:19) at transformImportGlob (D:\freedom\my-vue-app\node_modules\vite\dist\node\chunks\dep-85dbaaa7.js:20714:15) at TransformContext.transform (D:\freedom\my-vue-app\node_modules\vite\dist\node\chunks\dep-85dbaaa7.js:67367:105) at async Object.transform (D:\freedom\my-vue-app\node_modules\vite\dist\node\chunks\dep-85dbaaa7.js:42396:30) at async doTransform (D:\freedom\my-vue-app\node_modules\vite\dist\node\chunks\dep-85dbaaa7.js:56797:29)

Reproduction

`const plugins= { // game objects 'bbcodetextplugin': '/src/plugins/bbcodetext-plugin.js', 'tagtextplugin': '/src/plugins/tagtext-plugin.js', 'canvasplugin': '/src/plugins/canvas-plugin.js', 'circlemaskimageplugin': '/src/plugins/circlemaskimage-plugin.js', 'circularprogresscanvasplugin': '/src/plugins/circularprogresscanvas-plugin.js', 'roundrectanglecanvasplugin': '/src/plugins/roundrectanglecanvas-plugin.js', 'dynamictextplugin': '/src/plugins/dynamictext-plugin.js', 'textplayerplugin': '/src/plugins/textplayer-plugin.js', 'containerliteplugin': '/src/plugins/containerlite-plugin.js', 'gridtableplugin': '/src/plugins/gridtable-plugin.js', 'roundrectangleplugin': '/src/plugins/roundrectangle-plugin.js', 'customshapesplugin': '/src/plugins/customshapes-plugin.js', 'circularprogressplugin': '/src/plugins/circularprogress-plugin.js', 'customprogressplugin': '/src/plugins/customprogress-plugin.js', 'inputtextplugin': '/src/plugins/inputtext-plugin.js', 'youtubeplayerplugin': '/src/plugins/youtubeplayer-plugin.js', 'persistenceeffectplugin': '/src/plugins/persistenceeffect-plugin.js', 'lineplugin': '/src/plugins/line-plugin.js', 'ninepatchplugin': '/src/plugins/ninepatch-plugin.js', 'perspectiveimageplugin': '/src/plugins/perspectiveimage-plugin.js', 'shatterimageplugin': '/src/plugins/shatterimage-plugin.js', 'transitionimageplugin': '/src/plugins/transitionimage-plugin.js', 'fullwindowrectangleplugin': '/src/plugins/fullwindowrectangle-plugin.js', 'coverplugin': '/src/plugins/cover-plugin.js', // effect layer (shader) 'effectlayerplugin': '/src/plugins/effectlayer-plugin.js', 'outlineeffectlayerplugin': '/src/plugins/outlineeffectlayer-plugin.js',

// custom file loader
'webfontloaderplugin': '/src/plugins/webfontloader-plugin.js',
'awaitloaderplugin': '/src/plugins/awaitloader-plugin.js',
'scripttagloaderplugin': '/src/plugins/scripttagloader-plugin.js',
'imageuriloaderplugin': '/src/plugins/imageuriloader-plugin.js',

// actions
'gridalignplugin': '/src/plugins/gridalign-plugin.js',
'randomplaceplugin': '/src/plugins/randomplace-plugin.js',
'gridcutimageplugin': '/src/plugins/gridcutimage-plugin.js',

// input
'touchstateplugin': '/src/plugins/touchstate-plugin.js',
'dragplugin': '/src/plugins/drag-plugin.js',
'dragspeedplugin': '/src/plugins/dragspeed-plugin.js',
'sliderplugin': '/src/plugins/slider-plugin.js',
'scrollerplugin': '/src/plugins/scroller-plugin.js',
'buttonplugin': '/src/plugins/button-plugin.js',
'touchcursorplugin': '/src/plugins/touchcursor-plugin.js',
'virtualjoystickplugin': '/src/plugins/virtualjoystick-plugin.js',
'cursoratboundplugin': '/src/plugins/cursoratbound-plugin.js',
'mousewheeltoupdownplugin': '/src/plugins/mousewheeltoupdown-plugin.js',
'mousewheelscrollerplugin': '/src/plugins/mousewheelscroller-plugin.js',
'pinchplugin': '/src/plugins/pinch-plugin.js',
'dragrotateplugin': '/src/plugins/dragrotate-plugin.js',
'gesturesplugin': '/src/plugins/gestures-plugin.js',
'toucheventstopplugin': '/src/plugins/toucheventstop-plugin.js',
'touchhelperplugin': '/src/plugins/touchhelper-plugin.js',
'keyshubplugin': '/src/plugins/keyshub-plugin.js',

// member of game object
'fadeplugin': '/src/plugins/fade-plugin.js',
'scaleplugin': '/src/plugins/scale-plugin.js',
'flipplugin': '/src/plugins/flip-plugin.js',
'easemoveplugin': '/src/plugins/easemove-plugin.js',
'pathfollowerplugin': '/src/plugins/pathfollower-plugin.js',
'movetoplugin': '/src/plugins/moveto-plugin.js',
'rotatetoplugin': '/src/plugins/rotateto-plugin.js',
'flashplugin': '/src/plugins/flash-plugin.js',
'tintrgbplugin': '/src/plugins/tintrgb-plugin.js',
'shakepositionplugin': '/src/plugins/shakeposition-plugin.js',
'interceptionplugin': '/src/plugins/interception-plugin.js',
'anchorplugin': '/src/plugins/anchor-plugin.js',
'modalplugin': '/src/plugins/modal-plugin.js',
'particlesalongboundsplugin': '/src/plugins/particlesalongbounds-plugin.js',
// member of game object, arcade behavior
'eightdirectionplugin': '/src/plugins/eightdirection-plugin.js',
'bulletplugin': '/src/plugins/bullet-plugin.js',
'shipplugin': '/src/plugins/ship-plugin.js',
'buildarcadeobjectplugin': '/src/plugins/buildarcadeobject-plugin.js',

// member of text
'texttypingplugin': '/src/plugins/texttyping-plugin.js',
'textpageplugin': '/src/plugins/textpage-plugin.js',
'texteditplugin': '/src/plugins/textedit-plugin.js',

// extend of particles
'bitmapzoneplugin': '/src/plugins/bitmapzone-plugin.js',
'perlingrivatywellplugin': '/src/plugins/perlingrivatywell-plugin.js',

// camera
'scaleouterplugin': '/src/plugins/scaleouter-plugin.js',

// file chooser
'filechooserplugin': '/src/plugins/filechooser-plugin.js',

// member of scene
// sound
'soundfadeplugin': '/src/plugins/soundfade-plugin.js',

// control
'runcommandsplugin': '/src/plugins/runcommands-plugin.js',
'sequenceplugin': '/src/plugins/sequence-plugin.js',
'fsmplugin': '/src/plugins/fsm-plugin.js',
'tcrpplugin': '/src/plugins/tcrp-plugin.js',
'arcadetcrpplugin': '/src/plugins/arcadetcrp-plugin.js',
'csvscenarioplugin': '/src/plugins/csvscenario-plugin.js',
'waiteventsplugin': '/src/plugins/waitevents-plugin.js',
'eventpromiseplugin': '/src/plugins/eventpromise-plugin.js',
'achievementsplugin': '/src/plugins/achievements-plugin.js',
'conditionstableplugin': '/src/plugins/conditionstable-plugin.js',
'questplugin': '/src/plugins/quest-plugin.js',
'loopinticksplugin': '/src/plugins/loopinticks-plugin.js',
'bracketparserplugin': '/src/plugins/bracketparser-plugin.js',

// time
'clockplugin': '/src/plugins/clock-plugin.js',
'lifetimeplugin': '/src/plugins/lifetime-plugin.js',
'awaytimeplugin': '/src/plugins/awaytime-plugin.js',

// data structure
'csvtoarrayplugin': '/src/plugins/csvtoarray-plugin.js',
'csvtohashtableplugin': '/src/plugins/csvtohashtable-plugin.js',
'restorabledataplugin': '/src/plugins/restorabledata-plugin.js',
'buffdataplugin': '/src/plugins/buffdata-plugin.js',
'canvasdataplugin': '/src/plugins/canvasdata-plugin.js',
'uniqueitemlistplugin': '/src/plugins/uniqueitemlist-plugin.js',

// storage
'localforagefilesplugin': '/src/plugins/localforage-files-plugin.js',
'localstoragedataplugin': '/src/plugins/localstorage-data-plugin.js',

// math
'gashaponplugin': '/src/plugins/gashapon-plugin.js',
'perlinplugin': '/src/plugins/perlin-plugin.js',
'raycasterplugin': '/src/plugins/raycaster-plugin.js',
'expressionparserplugin': '/src/plugins/expressionparser-plugin.js',
'fuzzyplugin': '/src/plugins/fuzzy-plugin.js',
'fuzzy': '/src/plugins/fuzzy.js',
// geom
'rhombusplugin': '/src/plugins/rhombus-plugin.js',
'hexagonplugin': '/src/plugins/hexagon-plugin.js',
// curve
'spiralcurveplugin': '/src/plugins/spiralcurve-plugin.js',

// string
'xorplugin': '/src/plugins/xor-plugin.js',
'lzstringplugin': '/src/plugins/lzstring-plugin.js',

// shader
'swirlpipelineplugin': '/src/plugins/swirlpipeline-plugin.js',
'pixelationpipelineplugin': '/src/plugins/pixelationpipeline-plugin.js',
'grayscalepipelineplugin': '/src/plugins/grayscalepipeline-plugin.js',
'inversepipelineplugin': '/src/plugins/inversepipeline-plugin.js',
'hsladjustpipelineplugin': '/src/plugins/hsladjustpipeline-plugin.js',
'glowfilterpipelineplugin': '/src/plugins/glowfilterpipeline-plugin.js',
'toonifypipelineplugin': '/src/plugins/toonifypipeline-plugin.js',
'outlinepipelineplugin': '/src/plugins/outlinepipeline-plugin.js',
'dissolvepipelineplugin': '/src/plugins/dissolvepipeline-plugin.js',
'crossstitchingpipelineplugin': '/src/plugins/crossstitchingpipeline-plugin.js',
'shockwavepipelineplugin': '/src/plugins/shockwavepipeline-plugin.js',
'splitpipelineplugin': '/src/plugins/splitpipeline-plugin.js',
'fisheyepipelineplugin': '/src/plugins/fisheyepipeline-plugin.js',
'barrelpipelineplugin': '/src/plugins/barrelpipeline-plugin.js',
'glowfilter2pipelineplugin': '/src/plugins/glowfilter2pipeline-plugin.js',
'colorreplacepipelineplugin': '/src/plugins/colorreplacepipeline-plugin.js',
'kawaseblurpipelineplugin': '/src/plugins/kawaseblurpipeline-plugin.js',
'dropshadowpipelineplugin': '/src/plugins/dropshadowpipeline-plugin.js',

// board
'boardplugin': '/src/plugins/board-plugin.js',

// graph
'graphplugin': '/src/plugins/graph-plugin.js',

// parse
'parseplugin': '/src/plugins/parse-plugin.js',

// firebase
'firebaseplugin': '/src/plugins/firebase-plugin.js',

// templates
'bejeweled': '/src/templates/bejeweled/Bejeweled.js',
'uiplugin': '/src/templates/ui/ui-plugin.js',
'dialogquest': '/src/templates/dialog-quest/DialogQuest.js',
'spinnerplugin': '/src/templates/spinner/spinner-plugin.js',

// Plain class
// rex ui
'bbcodetext': '/src/templates/ui/bbcodetext/BBCodeText.js',
'buttons': '/src/templates/ui/buttons/Buttons.js',
'gridbuttons': '/src/templates/ui/gridbuttons/GridButtons.js',
'fixwidthbuttons': '/src/templates/ui/fixwidthbuttons/FixWidthButtons.js',
'canvas': '/src/templates/ui/canvas/Canvas.js',
'circlemaskimage': '/src/templates/ui/circlemaskimage/CircleMaskImage.js',
'dynamictext': '/src/templates/ui/dynamictext/DynamicText.js',
'textplayer': '/src/templates/ui/textplayer/TextPlayer.js',
'circularprogresscanvas': '/src/templates/ui/circularprogresscanvas/CircularProgressCanvas.js',
'circularprogress': '/src/templates/ui/circularprogress/CircularProgress.js',
'knob': '/src/templates/ui/knob/Knob.js',
'customshapes': '/src/templates/ui/customshapes/CustomShapes.js',
'customprogress': '/src/templates/ui/customprogress/CustomProgress.js',
'chart': '/src/templates/ui/chart/Chart.js',
'dialog': '/src/templates/ui/dialog/Dialog.js',
'fixwidthsizer': '/src/templates/ui/fixwidthsizer/FixWidthSizer.js',
'overlapsizer': '/src/templates/ui/overlapsizer/OverlapSizer.js',
'flip': '/src/templates/ui/flip/Flip.js',
'gridsizer': '/src/templates/ui/gridsizer/GridSizer.js',
'gridtable': '/src/templates/ui/gridtable/GridTable.js',
'label': '/src/templates/ui/label/Label.js',
'menu': '/src/templates/ui/menu/Menu.js',
'ninepatch': '/src/templates/ui/ninepatch/NinePatch.js',
'badgelabel': '/src/templates/ui/badgelabel/BadgeLabel.js',
'pages': '/src/templates/ui/pages/Pages.js',
'pan': '/src/templates/ui/pan/Pan.js',
'pinch': '/src/templates/ui/pinch/Pinch.js',
'press': '/src/templates/ui/press/Press.js',
'rotate': '/src/templates/ui/rotate/Rotate.js',
'roundrectangle': '/src/templates/ui/roundrectangle/RoundRectangle.js',
'roundrectanglecanvas': '/src/templates/ui/roundrectanglecanvas/RoundRectangleCanvas.js',
'scrollablepanel': '/src/templates/ui/scrollablepanel/ScrollablePanel.js',
'sizer': '/src/templates/ui/sizer/Sizer.js',
'slider': '/src/templates/ui/slider/Slider.js',
'swipe': '/src/templates/ui/swipe/Swipe.js',
'tabs': '/src/templates/ui/tabs/Tabs.js',
'tagtext': '/src/templates/ui/tagtext/TagText.js',
'tap': '/src/templates/ui/tap/Tap.js',
'textarea': '/src/templates/ui/textarea/TextArea.js',
'textbox': '/src/templates/ui/textbox/TextBox.js',
'toast': '/src/templates/ui/toast/Toast.js',
'sides': '/src/templates/ui/sides/Sides.js',
// spinner
'audiospinner': '/src/templates/spinner/audio/Audio.js',
'ballspinner': '/src/templates/spinner/ball/Ball.js',
'barsspinner': '/src/templates/spinner/bars/Bars.js',
'boxspinner': '/src/templates/spinner/box/Box.js',
'clockspinner': '/src/templates/spinner/clock/Clock.js',
'cubespinner': '/src/templates/spinner/cube/Cube.js',
'customspinner': '/src/templates/spinner/custom/Custom.js',
'dotsspinner': '/src/templates/spinner/dots/Dots.js',
'facebookspinner': '/src/templates/spinner/facebook/Facebook.js',
'gridspinner': '/src/templates/spinner/grid/Grid.js',
'losspinner': '/src/templates/spinner/los/Los.js',
'orbitspinner': '/src/templates/spinner/orbit/Orbit.js',
'ovalspinner': '/src/templates/spinner/oval/Oval.js',
'puffspinner': '/src/templates/spinner/puff/Puff.js',
'radiospinner': '/src/templates/spinner/radio/Radio.js',
'ringsspinner': '/src/templates/spinner/rings/Rings.js',
'spinner': '/src/templates/spinner/spinner/Spinner.js',
// others
'firebase': '/src/plugins/firebase.js',
'parse': '/src/plugins/parse.js'

} let objc={} for (const key in plugins) { if (Object.hasOwnProperty.call(plugins, key)) { const v = plugins[key]; console.log(v) import.meta.glob(${v}).then(a=>{ objc[key]=a }) } } export const plugin=objc`

System Info

System:
    OS: Windows 10 10.0.18363
    CPU: (8) x64 Intel(R) Core(TM) i5-8300H CPU @ 2.30GHz
    Memory: 12.17 GB / 19.86 GB
  Binaries:
    Node: 16.13.0 - D:\sys\tool\node\node.EXE
    npm: 8.1.0 - D:\sys\tool\node\npm.CMD
  Browsers:
    Edge: Spartan (44.18362.449.0)
    Internet Explorer: 11.0.18362.1

Used Package Manager

npm

Logs

No response

Validations

haoqunjiang commented 2 years ago

The error message is clear. The path passed to import.meta.glob must starts with ./ or /. `${v}` is not a valid pattern.