【问题标题】:Cannot find declaration to go to Vuex WebStorm?找不到前往 Vuex WebStorm 的声明?
【发布时间】:2021-10-29 09:38:15
【问题描述】:

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

现在我的架构是这样的:

  • index.ts
  • 商店
    • module1.store.ts
    • module2.store.ts
    • module3.store.ts
    • index.ts

存储/索引.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
}

【问题讨论】:

    标签: vuex webstorm


    【解决方案1】:

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

    请参阅WEB-45228 中的 cmets 了解可能的解决方法

    【讨论】:

    • 非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 2018-05-25
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    相关资源
    最近更新 更多