fix(bundling): ensure vitest timestamp files are ignored (#29418)
## Current Behavior Vitest TS config files produce timestamp temp files during project graph creation which are cleaned up. However, the creation and deletion of these files triggers the daemon to recalculate graph. It ends up in a loop. The vite timestamp files were already added to the gitignore to prevent this. ## Expected Behavior Add vitest timestamp files to gitignore
This commit is contained in:
parent
bb806b3ef3
commit
ba1641d7fd
@ -7,7 +7,8 @@ exports[`app generated files content - as-provided - my-app general application
|
|||||||
.nuxt
|
.nuxt
|
||||||
.nitro
|
.nitro
|
||||||
.cache
|
.cache
|
||||||
vite.config.*.timestamp*"
|
vite.config.*.timestamp*
|
||||||
|
vitest.config.*.timestamp*"
|
||||||
`;
|
`;
|
||||||
|
|
||||||
exports[`app generated files content - as-provided - my-app general application should add the nuxt and vitest plugins 1`] = `
|
exports[`app generated files content - as-provided - my-app general application should add the nuxt and vitest plugins 1`] = `
|
||||||
@ -366,7 +367,8 @@ exports[`app generated files content - as-provided - myApp general application s
|
|||||||
.nuxt
|
.nuxt
|
||||||
.nitro
|
.nitro
|
||||||
.cache
|
.cache
|
||||||
vite.config.*.timestamp*"
|
vite.config.*.timestamp*
|
||||||
|
vitest.config.*.timestamp*"
|
||||||
`;
|
`;
|
||||||
|
|
||||||
exports[`app generated files content - as-provided - myApp general application should add the nuxt and vitest plugins 1`] = `
|
exports[`app generated files content - as-provided - myApp general application should add the nuxt and vitest plugins 1`] = `
|
||||||
|
|||||||
@ -29,6 +29,11 @@
|
|||||||
"version": "20.0.6-beta.0",
|
"version": "20.0.6-beta.0",
|
||||||
"description": "Add gitignore entry for temporary vite config files and remove previous incorrect glob.",
|
"description": "Add gitignore entry for temporary vite config files and remove previous incorrect glob.",
|
||||||
"implementation": "./src/migrations/update-20-0-4/add-vite-temp-files-to-git-ignore"
|
"implementation": "./src/migrations/update-20-0-4/add-vite-temp-files-to-git-ignore"
|
||||||
|
},
|
||||||
|
"update-20-3-0": {
|
||||||
|
"version": "20.3.0-beta.2",
|
||||||
|
"description": "Add gitignore entry for temporary vitest config files.",
|
||||||
|
"implementation": "./src/migrations/update-20-3-0/add-vitest-temp-files-to-git-ignore"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packageJsonUpdates": {
|
"packageJsonUpdates": {
|
||||||
|
|||||||
@ -137,8 +137,9 @@ describe('@nx/vite:init', () => {
|
|||||||
await initGenerator(tree, {});
|
await initGenerator(tree, {});
|
||||||
|
|
||||||
// ASSERT
|
// ASSERT
|
||||||
expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot(
|
expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot(`
|
||||||
`"vite.config.*.timestamp*"`
|
"vite.config.*.timestamp*
|
||||||
);
|
vitest.config.*.timestamp*"
|
||||||
|
`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@ -13,7 +13,8 @@ describe('addViteTempFilesToGitIgnore', () => {
|
|||||||
// ASSERT
|
// ASSERT
|
||||||
expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot(`
|
expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot(`
|
||||||
".idea
|
".idea
|
||||||
vite.config.*.timestamp*"
|
vite.config.*.timestamp*
|
||||||
|
vitest.config.*.timestamp*"
|
||||||
`);
|
`);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -33,7 +34,8 @@ describe('addViteTempFilesToGitIgnore', () => {
|
|||||||
expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot(`
|
expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot(`
|
||||||
".idea
|
".idea
|
||||||
|
|
||||||
vite.config.*.timestamp*"
|
vite.config.*.timestamp*
|
||||||
|
vitest.config.*.timestamp*"
|
||||||
`);
|
`);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -46,8 +48,9 @@ describe('addViteTempFilesToGitIgnore', () => {
|
|||||||
addViteTempFilesToGitIgnore(tree);
|
addViteTempFilesToGitIgnore(tree);
|
||||||
|
|
||||||
// ASSERT
|
// ASSERT
|
||||||
expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot(
|
expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot(`
|
||||||
`"vite.config.*.timestamp*"`
|
"vite.config.*.timestamp*
|
||||||
);
|
vitest.config.*.timestamp*"
|
||||||
|
`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@ -0,0 +1,56 @@
|
|||||||
|
import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
|
||||||
|
import addViteTempFilesToGitIgnore from './add-vitest-temp-files-to-git-ignore';
|
||||||
|
|
||||||
|
describe('addViteTempFilesToGitIgnore', () => {
|
||||||
|
it('should update an existing .gitignore file to add the glob correctly', () => {
|
||||||
|
// ARRANGE
|
||||||
|
const tree = createTreeWithEmptyWorkspace();
|
||||||
|
tree.write('.gitignore', '.idea');
|
||||||
|
|
||||||
|
// ACT
|
||||||
|
addViteTempFilesToGitIgnore(tree);
|
||||||
|
|
||||||
|
// ASSERT
|
||||||
|
expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot(`
|
||||||
|
".idea
|
||||||
|
vite.config.*.timestamp*
|
||||||
|
vitest.config.*.timestamp*"
|
||||||
|
`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update an existing .gitignore file and remove incorrect glob and add the glob correctly', () => {
|
||||||
|
// ARRANGE
|
||||||
|
const tree = createTreeWithEmptyWorkspace();
|
||||||
|
tree.write(
|
||||||
|
'.gitignore',
|
||||||
|
`.idea
|
||||||
|
**/vitest.config.{js,ts,mjs,mts,cjs,cts}.timestamp*`
|
||||||
|
);
|
||||||
|
|
||||||
|
// ACT
|
||||||
|
addViteTempFilesToGitIgnore(tree);
|
||||||
|
|
||||||
|
// ASSERT
|
||||||
|
expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot(`
|
||||||
|
".idea
|
||||||
|
|
||||||
|
vite.config.*.timestamp*
|
||||||
|
vitest.config.*.timestamp*"
|
||||||
|
`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should write a new .gitignore file to add the glob correctly', () => {
|
||||||
|
// ARRANGE
|
||||||
|
const tree = createTreeWithEmptyWorkspace();
|
||||||
|
tree.delete('.gitignore');
|
||||||
|
|
||||||
|
// ACT
|
||||||
|
addViteTempFilesToGitIgnore(tree);
|
||||||
|
|
||||||
|
// ASSERT
|
||||||
|
expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot(`
|
||||||
|
"vite.config.*.timestamp*
|
||||||
|
vitest.config.*.timestamp*"
|
||||||
|
`);
|
||||||
|
});
|
||||||
|
});
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
import { Tree } from '@nx/devkit';
|
||||||
|
import { addViteTempFilesToGitIgnore as _addViteTempFilesToGitIgnore } from '../../utils/add-vite-temp-files-to-gitignore';
|
||||||
|
|
||||||
|
export default function addViteTempFilesToGitIgnore(tree: Tree) {
|
||||||
|
// need to check if .gitignore exists before adding to it
|
||||||
|
// then need to check if it contains the following pattern
|
||||||
|
// **/vite.config.{js,ts,mjs,mts,cjs,cts}.timestamp*
|
||||||
|
// if it does, remove just this pattern
|
||||||
|
if (tree.exists('.gitignore')) {
|
||||||
|
const gitIgnoreContents = tree.read('.gitignore', 'utf-8');
|
||||||
|
if (
|
||||||
|
gitIgnoreContents.includes(
|
||||||
|
'**/vitest.config.{js,ts,mjs,mts,cjs,cts}.timestamp*'
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
tree.write(
|
||||||
|
'.gitignore',
|
||||||
|
gitIgnoreContents.replace(
|
||||||
|
'**/vitest.config.{js,ts,mjs,mts,cjs,cts}.timestamp*',
|
||||||
|
''
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_addViteTempFilesToGitIgnore(tree);
|
||||||
|
}
|
||||||
@ -13,4 +13,17 @@ export function addViteTempFilesToGitIgnore(tree: Tree) {
|
|||||||
} else {
|
} else {
|
||||||
tree.write('.gitignore', newGitIgnoreContents);
|
tree.write('.gitignore', newGitIgnoreContents);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
newGitIgnoreContents = `vitest.config.*.timestamp*`;
|
||||||
|
if (tree.exists('.gitignore')) {
|
||||||
|
const gitIgnoreContents = tree.read('.gitignore', 'utf-8');
|
||||||
|
if (!gitIgnoreContents.includes(newGitIgnoreContents)) {
|
||||||
|
newGitIgnoreContents = stripIndents`${gitIgnoreContents}
|
||||||
|
${newGitIgnoreContents}`;
|
||||||
|
|
||||||
|
tree.write('.gitignore', newGitIgnoreContents);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
tree.write('.gitignore', newGitIgnoreContents);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user