【问题标题】:Refactor all Vue component imports to append .vue extension重构所有 Vue 组件导入以附加 .vue 扩展名
【发布时间】:2021-07-11 00:10:45
【问题描述】:

Vue CLI 正在放弃对无扩展导入的支持,而 Vetur 等 VS Code 扩展支持的各种功能不适用于无扩展导入。

我需要修改从 .vue 文件导入的每个默认组件,以在整个代码库中附加扩展名。由于文件数量众多,手动操作是不可行的,需要一些自动化的方法。

例子:

转弯:

import Baz from '@/components/Baz'
import Thing from './LocalThing'
import OtherThing from '../../OtherThing'

进入:

import Baz from '@/components/Baz.vue'
import Thing from './LocalThing.vue'
import OtherThing from '../../OtherThing.vue'

如何做到这一点?

【问题讨论】:

    标签: javascript vue.js visual-studio-code refactoring es6-modules


    【解决方案1】:

    正则表达式查找替换为

    查找

    ^import (.*?)(?<!\.vue)'$
    

    替换

    import $1.vue'
    

    不要替换已经完成的。

    它应该可以在文件中查找/替换。

    编辑

    然后你必须根据以.vue结尾的文件名构造一个正则表达式

    find . -name "*.vue"
    

    然后用文件基名构造一个正则表达式:

    ^import (.*?(?:Baz|LocalThing|OtherThing))(?<!\.vue)'$
    

    【讨论】:

    • 并非项目中的每个导入都从vue 组件文件导入...这就是为什么这很棘手。有很多从包和其他 js & ts 文件中导入的东西,它们将永远存在。我只需要对以.vue 结尾的文件的导入进行此更改,这意味着正则表达式全局搜索将不起作用,除非它可以执行模块解析并读取导入的文件名/位置?
    • @DouglasGaskell 看到编辑,你必须合并文件名
    猜你喜欢
    • 2017-11-01
    • 1970-01-01
    • 2021-05-31
    • 2019-04-23
    • 2019-06-03
    • 2020-06-10
    • 2021-04-04
    • 2020-02-28
    • 1970-01-01
    相关资源
    最近更新 更多