mirror of
https://github.com/pnpm/pnpm.git
synced 2026-02-15 01:24:07 -05:00
feat: support check more invalid workspace file (#10319)
close #10313 --------- Co-authored-by: Zoltan Kochan <z@kochan.io>
This commit is contained in:
5
.changeset/honest-radios-cut.md
Normal file
5
.changeset/honest-radios-cut.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@pnpm/find-workspace-dir": patch
|
||||
---
|
||||
|
||||
Throw an error message if a `.pnpm-workspace.yaml` or `.pnpm-workspace.yml` file is found instead of a `pnpm-workspace.yaml`.
|
||||
@@ -61,19 +61,31 @@ test('no projects found', async () => {
|
||||
}
|
||||
})
|
||||
|
||||
test('incorrect workspace manifest', async () => {
|
||||
preparePackages([
|
||||
{
|
||||
name: 'project',
|
||||
version: '1.0.0',
|
||||
},
|
||||
])
|
||||
const invalidWorkspaceManifests = [
|
||||
'pnpm-workspaces.yaml',
|
||||
'pnpm-workspaces.yml',
|
||||
'pnpm-workspace.yml',
|
||||
'.pnpm-workspaces.yaml',
|
||||
'.pnpm-workspaces.yml',
|
||||
'.pnpm-workspace.yml',
|
||||
'.pnpm-workspace.yaml',
|
||||
]
|
||||
|
||||
writeYamlFile('pnpm-workspace.yml', { packages: ['**', '!store/**'] })
|
||||
invalidWorkspaceManifests.forEach((filename) => {
|
||||
test('incorrect workspace manifest ' + filename, async () => {
|
||||
preparePackages([
|
||||
{
|
||||
name: 'project',
|
||||
version: '1.0.0',
|
||||
},
|
||||
])
|
||||
|
||||
const { status, stderr } = execPnpmSync(['install'])
|
||||
expect(stderr.toString()).toMatch(/The workspace manifest file should be named "pnpm-workspace.yaml"/)
|
||||
expect(status).toBe(1)
|
||||
writeYamlFile(filename, { packages: ['**', '!store/**'] })
|
||||
|
||||
const { status, stderr } = execPnpmSync(['install'])
|
||||
expect(stderr.toString()).toMatch(/The workspace manifest file should be named "pnpm-workspace.yaml"/)
|
||||
expect(status).toBe(1)
|
||||
})
|
||||
})
|
||||
|
||||
test('linking a package inside a monorepo with --link-workspace-packages when installing new dependencies', async () => {
|
||||
|
||||
@@ -5,7 +5,15 @@ import findUp from 'find-up'
|
||||
|
||||
const WORKSPACE_DIR_ENV_VAR = 'NPM_CONFIG_WORKSPACE_DIR'
|
||||
const WORKSPACE_MANIFEST_FILENAME = 'pnpm-workspace.yaml'
|
||||
const INVALID_WORKSPACE_MANIFEST_FILENAME = ['pnpm-workspaces.yaml', 'pnpm-workspaces.yml', 'pnpm-workspace.yml']
|
||||
const INVALID_WORKSPACE_MANIFEST_FILENAME = [
|
||||
'pnpm-workspaces.yaml',
|
||||
'pnpm-workspaces.yml',
|
||||
'pnpm-workspace.yml',
|
||||
'.pnpm-workspace.yaml',
|
||||
'.pnpm-workspace.yml',
|
||||
'.pnpm-workspaces.yaml',
|
||||
'.pnpm-workspaces.yml',
|
||||
]
|
||||
|
||||
export async function findWorkspaceDir (cwd: string): Promise<string | undefined> {
|
||||
const workspaceManifestDirEnvVar = process.env[WORKSPACE_DIR_ENV_VAR] ?? process.env[WORKSPACE_DIR_ENV_VAR.toLowerCase()]
|
||||
|
||||
Reference in New Issue
Block a user