Comments (5)
![Schermafbeelding 2023-11-30 om 10 36 10](https://private-user-images.githubusercontent.com/6420061/286888306-c2478383-1fdd-4e20-ba79-a156d382d9c9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTc1MjAwODksIm5iZiI6MTcxNzUxOTc4OSwicGF0aCI6Ii82NDIwMDYxLzI4Njg4ODMwNi1jMjQ3ODM4My0xZmRkLTRlMjAtYmE3OS1hMTU2ZDM4MmQ5YzkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MDRUMTY0OTQ5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjZhMmYxODY0MjBlMjY4Njc4NGM3YjVkOGM0NTc2NTFiYmI3NDExMmNkMzFlOWQ3YWQ1ZjI5NDg1N2M3MGM0NSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.UzRFKD3ZOGu-pMaM_NAW3OzQ-4lsWDLQbb17PEi_rYM)
I know the message is not coming from Knip itself, it comes from mapWorkspaces
which is called from Knip. When it finds package.json files with the same name property it throws an error.
Hope this clarifies it a bit: in the sourcecode of an Angular package is a package.json. When building a package, ng-packgr generates a package.json file in the build directory. The build directory will then become the published package. I just want to exclude the built package.json from analysis by Knip. mapWorkspaces
allows passing a glob pattern through its ignore
parameter which is perfect as it will not collect the package and won't throw an error.
To add: Separately from the issue I have I also think it's more correct that if a directory is in ignoreWorkspaces that it won't be accessed at all.
from knip.
Here is the full error message and stack trace:
Reading workspace configuration(s)...
/Users/arnoud/code/opensource/query/node_modules/.pnpm/@[email protected]/node_modules/@npmcli/map-workspaces/lib/index.js:64
return Object.assign(new Type(message), { code })
^
Error: must not have multiple workspaces with the same name
package '@tanstack/angular-query-devtools-experimental' has conflicts in the following paths:
/Users/arnoud/code/opensource/query/packages/angular-query-devtools-experimental
/Users/arnoud/code/opensource/query/packages/angular-query-devtools-experimental/build
package '@tanstack/angular-query-experimental' has conflicts in the following paths:
/Users/arnoud/code/opensource/query/packages/angular-query-experimental
/Users/arnoud/code/opensource/query/packages/angular-query-experimental/build
at getError (/Users/arnoud/code/opensource/query/node_modules/.pnpm/@[email protected]/node_modules/@npmcli/map-workspaces/lib/index.js:64:24)
at mapWorkspaces (/Users/arnoud/code/opensource/query/node_modules/.pnpm/@[email protected]/node_modules/@npmcli/map-workspaces/lib/index.js:146:11)
at async ConfigurationChief.getManifestWorkspaces (file:///Users/arnoud/code/opensource/query/node_modules/.pnpm/[email protected][email protected]/node_modules/knip/dist/ConfigurationChief.js:191:28)
at async ConfigurationChief.setWorkspaces (file:///Users/arnoud/code/opensource/query/node_modules/.pnpm/[email protected][email protected]/node_modules/knip/dist/ConfigurationChief.js:165:35)
at async ConfigurationChief.init (file:///Users/arnoud/code/opensource/query/node_modules/.pnpm/[email protected][email protected]/node_modules/knip/dist/ConfigurationChief.js:105:9)
at async main (file:///Users/arnoud/code/opensource/query/node_modules/.pnpm/[email protected][email protected]/node_modules/knip/dist/index.js:27:5)
at async run (file:///Users/arnoud/code/opensource/query/node_modules/.pnpm/[email protected][email protected]/node_modules/knip/dist/cli.js:23:73)
at async file:///Users/arnoud/code/opensource/query/node_modules/.pnpm/[email protected][email protected]/node_modules/knip/dist/cli.js:74:1 {
code: 'EDUPLICATEWORKSPACE'
}
from knip.
Right. I guess was confused, because just the other day I implemented the feature, but tested against workspaces not read through mapWorkspaces
(but additional ones configured in knip.json
), so I didn't recognize the error message without the stack trace.
from knip.
Since workspaces can also be ignored in the package manager config itself, and #374 itself is also closed, closing this one.
from knip.
@webpro I get the error even if I explicitly ignore the build
package:
ignoreWorkspaces: [
'examples/**',
'packages/angular-query-devtools-experimental/build/**',
],
from knip.
Related Issues (20)
- Default import name being used to determine if export is used HOT 7
- Re-exported enum members incorrectly reported as unused HOT 7
- False positive when using a dynamic default importing HOT 2
- Module '"knip"' has no exported member 'KnipConfig'. Did you mean to use 'import KnipConfig from "knip"' instead? HOT 2
- "ignore" file working even though it shouldn't based on the docs HOT 4
- [Svelte@5] Knip fails to resolve `*.svelte.(j|t)s` files HOT 4
- Run the script only against the staged files. HOT 2
- `ignore` is not applied for Auto-fix HOT 1
- Not working with @emotion/styled during string interpolation HOT 1
- 'TypeError: importItems.importedAs.entries is not a function' error when using --cache, but not without the cache HOT 2
- Dependency reported as "unused" even if it's used with require.resolve(...) HOT 5
- Fails to run due to TypeError in `graphql-codegen` HOT 3
- `No "exports" main defined` error with `estree-walker` when using `mdx-js` plugin HOT 4
- "RangeError: Maximum call stack size exceeded" with self import HOT 1
- Binary reported even `ignoreBinaries` is used. HOT 1
- Links are broken all over the docs HOT 2
- Stricter check for `--workspace` paths HOT 3
- `ignoreBinaries` config not respected anymore HOT 6
- Path mapping configuration not respected for .json files HOT 4
- React Rouer V6 lazy api how to ignore HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from knip.