diff --git a/packages/@vue/cli-ui/src/components/FolderExplorer.vue b/packages/@vue/cli-ui/src/components/FolderExplorer.vue index c376683fa..a207b739e 100644 --- a/packages/@vue/cli-ui/src/components/FolderExplorer.vue +++ b/packages/@vue/cli-ui/src/components/FolderExplorer.vue @@ -107,6 +107,7 @@ import FOLDERS_FAVORITE from '../graphql/foldersFavorite.gql' import FOLDER_OPEN from '../graphql/folderOpen.gql' import FOLDER_OPEN_PARENT from '../graphql/folderOpenParent.gql' import FOLDER_SET_FAVORITE from '../graphql/folderSetFavorite.gql' +import PROJECT_CWD_RESET from '../graphql/projectCwdReset.gql' export default { components: { @@ -132,6 +133,10 @@ export default { foldersFavorite: FOLDERS_FAVORITE }, + beforeDestroy () { + this.resetProjectCwd() + }, + methods: { async openFolder (path) { this.editingPath = false @@ -209,6 +214,12 @@ export default { refreshFolder () { this.openFolder(this.folderCurrent.path) + }, + + resetProjectCwd () { + this.$apollo.mutate({ + mutation: PROJECT_CWD_RESET + }) } } } diff --git a/packages/@vue/cli-ui/src/graphql-api/connectors/projects.js b/packages/@vue/cli-ui/src/graphql-api/connectors/projects.js index 5c505e3e8..31d4b3278 100644 --- a/packages/@vue/cli-ui/src/graphql-api/connectors/projects.js +++ b/packages/@vue/cli-ui/src/graphql-api/connectors/projects.js @@ -322,6 +322,12 @@ async function getPlugins (id, context) { return [] } +function resetCwd (context) { + if (currentProject) { + cwd.set(currentProject.path, context) + } +} + module.exports = { list, getCurrent, @@ -333,5 +339,6 @@ module.exports = { import: importProject, open, remove, - getPlugins + getPlugins, + resetCwd } diff --git a/packages/@vue/cli-ui/src/graphql-api/resolvers.js b/packages/@vue/cli-ui/src/graphql-api/resolvers.js index dce421ac7..0d7275701 100644 --- a/packages/@vue/cli-ui/src/graphql-api/resolvers.js +++ b/packages/@vue/cli-ui/src/graphql-api/resolvers.js @@ -52,7 +52,8 @@ module.exports = { projectCreate: (root, { input }, context) => projects.create(input, context), projectImport: (root, { input }, context) => projects.import(input, context), projectOpen: (root, { id }, context) => projects.open(id, context), - projectRemove: (root, { id }, context) => projects.remove(id, context) + projectRemove: (root, { id }, context) => projects.remove(id, context), + projectCwdReset: (root, args, context) => projects.resetCwd(context) }, Subscription: { diff --git a/packages/@vue/cli-ui/src/graphql-api/type-defs.js b/packages/@vue/cli-ui/src/graphql-api/type-defs.js index c5f943091..f1fdf4d48 100644 --- a/packages/@vue/cli-ui/src/graphql-api/type-defs.js +++ b/packages/@vue/cli-ui/src/graphql-api/type-defs.js @@ -172,6 +172,7 @@ type Mutation { projectOpen (id: ID!): Project! projectSetFavorite (id: ID!, favorite: Int!): Project! projectRemove (id: ID!): Boolean! + projectCwdReset: String presetApply (id: ID!): ProjectCreation featureSetEnabled (id: ID!, enabled: Boolean): Feature pluginAdd (id: ID!): Plugin diff --git a/packages/@vue/cli-ui/src/graphql/projectCwdReset.gql b/packages/@vue/cli-ui/src/graphql/projectCwdReset.gql new file mode 100644 index 000000000..2ce5238f0 --- /dev/null +++ b/packages/@vue/cli-ui/src/graphql/projectCwdReset.gql @@ -0,0 +1,3 @@ +mutation projectCwdReset { + projectCwdReset +}