找不到去 Vuex WebStorm 的声明?

Cannot find declaration to go to Vuex WebStorm?

我添加了自动导入 Vuex 模块,之后我无法从组件或我声明的其他地方转到 Vuex actions/getters/etc。

现在我的架构是这样的:

store/index.ts:

const requireModule = require.context('.', false, /\.ts$/)
const modules: any = {}

requireModule.keys().forEach(fileName => {
  if (fileName === './index.ts') return

  const moduleName = fileName
    .replace(/(\.\/|\.store\.ts)/g, '')
    .replace(/^\w/, c => c.toLowerCase())
  modules[moduleName] = requireModule(fileName).default || requireModule(fileName)
})

export default modules

index.ts(兄弟店):

export default new Vuex.Store({
  modules,
  strict: debug,
  plugins: debug ? [createLogger()] : []
})

如果我在组件中使用任何操作它是有效的,但如果我想从组件中执行此操作我不能:

每个商店模块都有:

export default {
  namespaced: true,
  state,
  actions,
  getters,
  mutations
}

WebStorm中的Vuex补全是基于静态代码分析的。不幸的是,您使用的语法太复杂,无法静态分析,因为模块名称是从文件名动态生成的。

请参阅 WEB-45228 中的评论以了解可能的解决方法