Closed rajeshaz09 closed 7 years ago
Better would be a generic package/component manager panel that extensions can plug into. Not everyone uses npm -- even in the JS world there are alternate package systems that some projects might use instead.
Agree with @coldacid here, should keep in mind that in many cases, npm as a package manager is actually just working "under the hood" and you don't really interact with it at all.
I've thought about this feature for a bit and a few ideas and questions come to mind. I dig @coldacid's idea about package manager extensions, so from here on out I'm just going to assume that package managers will be implemented by extensions. Package manager extensions could also be used for adding TypeScript definition management or even commercial sources (think codecanyon, telerik and what not) if VS Code is open to that. A similar idea is already in the roadmap ("Improved npm support...") and it might be yet another reason for people to switch from Sublime to VS Code.
Again, I'm just writing down ideas based on the assumption VS Code will use extensions for package managers. Correct me if I'm wrong though, no hurt feelings :wink:
dependencies
, devDependencies
, peerDependencies
, optionalDependencies
and global dependencies, each of which fulfil their specific purpose. Package Management Extensions would have to contribute a list of their specific dependency types.npm i typescript -g
or npm i typescript —save-dev
. Every Package Manager Extension would have to provide at least one installer, but one installer should be able to install multiple dependency types if their installation procedures are similar.npm-debug.log
file — maybe error recovery help could also be printed in the output console.Meta Data Providers Descriptions, thumbnails, download statistics etc would have to be available in the UI. Such meta data must be provided via extensions because the sources for this data differ vastly between package managers. Extensions could easily wrap around libraries like npm-registry-client and similar.
Something else that came to mind here is a UI element that indicates whether a package is compatible with your project's license.
The ideas I've had so far for "Meta Data" tabs:
There should be a way to recover if something goes wrong during installation. A UI such as the following would address the best case scenario in which errors might be resolved by simply trying the installation again.
Here's my two cents on the workflow. Not all too detailed, but maybe its a start. These are just mockups BTW, no code was written :wink:
A few more things that aren't in the UI mockup:
npm i typescript@2.0.0
vs npm i typescript@2.0.2
).@FabianLauer that is amazingly well thought out, thanks! 😃
This would be very very cool and useful! I think its a brilliant idea.
specially in entity framework core, lots of commands requires nuget package manger console, e.g. install entityframework, update-database, migrations etc. Most of tutorials on ASP.NET Core uses NPM, specially for database (entity framework). I dont want to go to project.json file and write "EntityFramework.MicrosoftSqlServer" and then wait for intellisense the select a version then OMG. A windows user can easily download VS Community version and use inbuilt NPM Manager. But what about mac and linux user. Yes i know there are alternate ways (using terminal command, or download manually a package and install). But VS Code should have NPM Manger for dot net developer, it'll be a thumbs UP if..
The tree view api would work well for this. One of our tree view extension samples even implements a basic version of this feature: https://github.com/Microsoft/vscode-extension-samples/blob/master/tree-view-sample/src/nodeDependencies.ts
If you are interested in creating this, let me know if you have any questions about the VSCode APIs
Closing as extension-canidate
It would be nice, Node Package Manager panel , similar to the Visual Studio nuget package manager.