vite打包无法解析#开头的包

130 阅读1分钟
import path from 'path';
import { defineConfig, Plugin } from "vite";
const slefLoad = () => {
  const options: Plugin = {
    name: 'selfLoad',
    resolveId: (source, importer) => {
      if (source[0] !== '#' || importer === undefined) return null
      const arr = importer.split(path.sep)
      while (arr.pop(), arr.pop() !== 'node_modules') { importer = path.join(importer, '..') }
      importer = path.join(importer, '..')
      const jsonpath = path.join(importer, 'package.json')
      const { imports } = require(jsonpath)
      const res = path.join(importer, imports[source]?.node || imports[source])
      console.log(res)
      return res
    }
  }
  return options
}
export default defineConfig({
  plugins: [slefLoad()],
  // ...
});