Comments (8)
(but note that if you omit peers, your dep graph is invalid and can't work)
from cli.
@saziri-arrow The typescript is installed with npm install --omit=dev because its a peer dependency of ts-node not directly a devDependency. To prevent typescript from being installed you would need to omit peer dependencies with npm install --omit=peer.
You can check the documentation here : https://docs.npmjs.com/cli/v10/commands/npm-install#omit
from cli.
@saziri-arrow As pointed by Lijarb potential issues with omitting peer dependencies. If you are sure you can do selective omission instead of omitting all peer dependencies, consider manually managing them use a post-install script in package.json.
from cli.
Hello I can't use npm install --omit=peer since I need other peerDependencies obviously.
My question is :
Why ts-node is installed with --omit=dev since it's devDependancy and It's marked as optional peerDependancy in typeorm.
Optioannal peerDependancy should only match dependancy, not devDependancy don't you think ?
While the same configuration in root package.json will not install peerDependancy with -omit=dev :
"peerDependencies": { "ts-node": "^10.9.2" }, "peerDependenciesMeta": { "ts-node": { "optional": true } }, "devDependencies": { "ts-node": "^10.9.2" },
Also if you run npm uninstall ts-node, it will keep it since it's already install with typeorm peerDependancy (package-lock.json)
from cli.
The reason ts-node is still installed even with --omit=dev is because its listed as peer dependency of typeorm. When npm installs typeorm it sees ts-node as a peer dependency and installs it, regardless of whether its also listed as a devDependency in your root package.json. The npm uninstall ts-node does not remove because its still listed as a peer dependeny of typeorm in your package-lock.json. npm sees that its still required by another package in dependency tree and keeps it installed.
optional peer dependencies:
Marked as optional in the peerDependenciesMeta field, and are meant to be installed only if the package using them is installed.
from cli.
Hello ts-node will not be installed because it is marked as optional dependancy :
But it will be installed if I add ts-node it to my devDependancies. For you it is the correct behaviour ? Mixing devDependancies and PeerDependancies even if I write --omit=dev
from cli.
Related Issues (20)
- [BUG] DevDependancy are installed in production when also marked as peerDependenciesMeta optional HOT 3
- [question] Whether it is possible to upload to npmjs.org manually? HOT 1
- [BUG] `npm outdated --json` doesn't provide distinct workspace packages information HOT 1
- [BUG] git dependencies cause weird behaviour when git is not installed HOT 1
- [BUG] outdated does not report packages in unnamed workspaces HOT 1
- [BUG] Inconsistent audit json HOT 3
- [BUG] `npm i` does not set `["packages"][""]["name"]` in package-lock.json when there is no name in package.json while `npm audit fix` sets that to project's directory name HOT 7
- [BUG] `npm install` sometimes removes indirect dependencies if a parent node was deleted from the lockfile HOT 2
- [BUG] The .gitignore file is renamed to .npmignore when npm install HOT 2
- [BUG] The package-lock.json file depends on node_modules, which will cause the lock generated by npm i to be inconsistent after the lock file is deleted when some packages that depend on the system architecture (such as node-unix-socket) are installed again. HOT 3
- Start HOT 1
- [BUG] Project name was being added to dependencies automatically HOT 7
- Align npm packages to npm 10's node engine range
- Problem: CORS Error When Accessing Swagger API Deployed on AWS EC2 HOT 1
- Error: The programmatic API was removed in npm v8.0.0 HOT 7
- [BUG] npx fails to find local packages in project directory when using fnm HOT 1
- [BUG] `npm pack` marks the wrong files as executable
- npm error code ENOENT npm error syscall lstat npm error path C:\Users\hoang\AppData\Roaming\npm npm error errno -4058 npm error enoent ENOENT: no such file or directory, lstat 'C:\Users\hoang\AppData\Roaming\npm' npm error enoent This is related to npm not being able to find a file. npm error enoent npm error A complete log of this run can be found in: C:\Users\hoang\AppData\Local\npm-cache\_logs\2024-09-02T15_31_36_800Z-debug-0.log HOT 1
- [DOCS] arborist doesnt mention pnpm and yarn support
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 cli.