he wei
2024-04-15 c94f1afa786f297be86b01b49a641b2c0ad98b6e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import Vue from "vue";
import Vuex from "vuex";
import getters from "./getters";
 
Vue.use(Vuex);
 
console.log(import.meta.env, process.env, 'env', process.env.NODE_ENV);
let modules;
if (import.meta.env == undefined) {
  console.log("通过Webpack启动");
  const modulesFiles = require.context('./modules', true, /\.js$/)
  modules = modulesFiles.keys().reduce((modules, modulePath) => {
    // set './app.js' => 'app'
    const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
    const value = modulesFiles(modulePath)
    console.log(value, modules, modulePath, 'xxxx');
    modules[moduleName] = value.default
    return modules
  }, {})
} else {
  console.log("通过Vite启动");
  // vite改造
  const modulesFiles = import.meta.glob("./modules/*.js", { eager: true });
  
  modules = {};
  for (const path in modulesFiles) {
    // modules[path.replace(/\.\/\modules\/|\.js/g, '')] = modulesFiles[path].default
    modules[path.replace(/^\.\/modules\/(.*)\.\w+$/, "$1")] =
      modulesFiles[path].default;
  }
}
// https://webpack.js.org/guides/dependency-management/#requirecontext
// you do not need `import app from './modules/app'`
// it will auto require all vuex module from modules file
 
const store = new Vuex.Store({
  modules,
  getters,
});
 
export default store;