When comparing Symfony vs NPM, the Slant community recommends NPM for most people. In the question“What are the best web design tools?” NPM is ranked 9th while Symfony is ranked 15th. The most important reason people chose NPM is:
NPM is compatible with any CLI the developer wants to use.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Open Source
Symfony is open source and released under the MIT license.
Pro Easy debugging with a built-in debug toolbar
Symfony comes with a built-in toolbar that helps developers debug their applications during the development phase.
The toolbar is also extendable and new components, called panels can be added if needed to help with the debugging process.
Pro Great plugin ecosystem
One of the greatest strengths of Symfony is it's amazing and large plugin ecosystem, which comes as a result of it's large and dedicated community. Having a large number of plugins means less development time and more productivity.

Pro Highly active community
Symfony has one of the most active communities out of all the PHP frameworks. This is shown by the high number of commits made every day in the GitHub repo.
Pro Teaches you good practices
Symfony makes you be a better programmer. You have to deal with the latest object-oriented design patterns such as service-oriented architecture, dependency injection, interface abstraction, and so on.
Pro Uses YAML/XML/PHP/Annotation
Symfony makes use of XML, YAML or PHP annotations to create configurations in order to tell Doctrine on how properties of a certain class should be.
Pro Powerful event system
Symfony has a powerful built-in event system that allows you to add flexibility to applications and makes it easier to maintain the codebase down the road.
Pro Great templating engine
Uses Twig, which is a simple and easy to learn templating language that can also be used as a standalone engine, outside the framework.
Pro Uses Doctrine ORM
Symfony makes use of the Doctrine ORM to add an abstraction layer over the database in order to maintain flexibility without having unnecessary code duplication.
Pro Compatible with any CLI
NPM is compatible with any CLI the developer wants to use.

Pro Plenty of helpful NPM modules/plugins
NPM has a strong community that has developed plenty of libraries and plugins that are useful to developers.
Pro Very concise configuration
NPM scripts require fewer lines of code to run a given task. This is true even when it's for running build processes. Using Unix pipes lots of tasks can be reduced to one-liners.
Pro Does not need any wrapper modules
With other task runners, you need to install wrapper modules for tools you may already have installed. When using NPM that's not necessary, to use the tools you need, just install them directly through NPM.
Pro Part of node.js distribution
Pro You're most likely using NPM already
Pro Uncomplicated package management system
When it works...
Cons
Con Settings
Too many configurations.
Con Very hard to install
Setting it up on webhost without a console is difficult.
Con Promotes bad development practices
Such as annotations via comments.
Con Doctrine ORM
Symfony Standard Edition, which is the most widely used distribution, comes integrated with Doctrine, the most resource hogging ORM library.
Con You need a lot of files to display a single page
For a simple hello world page you need about 5 files.
Con Custom tasks require additional keyword 'run'
Only a few standard tasks support being executed without the run
keyword (e.g., npm start
vs npm run customtask
)
Con Not a build system, only a task runner
It is supposed to be used for running gulp, webpack or whatever. But it is not supposed to be used as a build system.
Con Passing parameters is awkward
In order to pass additional parameters to npm you must add them after --
(e.g., npm run build -- --custom='foo'
).
Con Badly documented
Less than bare minimum official documentation leaves users in the dark without taking often expensive external courses. Even the --help text has unpluggable gaps. One official source notes the documentation isn't adequate yet nothing has been done to fix this.
Con Lot of issues with authentication and random node problems
Unable to recover from common depencies conflicts consistantly. Error messages are not always helpful to debugging. Doesn't account well for users with different versions of node.
Con Does not run well with Windows
Since a lot of projects that use NPM as a build tool most of the time make use of Bash scripts as well. This means that open source projects that run the command npm run
may run into issues when used in a Windows environment.
Con Doesn't allow you to create build process with complicated logic on its own
In complex heterogeneous app you will quickly migrate to gulp, webpack or whatever leaving to NPM only simple task running responsibility.
