Need advice about which tool to choose?Ask the StackShare community!

Vue CLI

439
469
+ 1
3
Webpack

40K
27.1K
+ 1
752
Add tool

Vue CLI vs Webpack: What are the differences?

  1. Vue CLI: Vue CLI is a command line interface tool that helps developers quickly scaffold and set up new Vue.js projects. It provides a pre-configured development environment with all the necessary build tools and plugins.
  2. Webpack: Webpack is a module bundler that is primarily used to bundle JavaScript files and their dependencies into a single file. It allows developers to split their code into different modules and optimize the final bundle for performance.

  3. Dependency Management: Vue CLI automatically manages project dependencies using npm or yarn, while Webpack requires developers to manually manage dependencies by specifying them in a separate configuration file.

  4. Project Structure: Vue CLI follows a convention-based project structure with specific directories for components, assets, and views. It provides a standardized layout for Vue projects, making it easier for developers to navigate and understand the codebase. On the other hand, Webpack does not enforce any specific project structure and allows developers to organize their code according to their preferences.

  5. Plugin Ecosystem: Vue CLI has a rich plugin ecosystem that allows developers to extend its functionality and add additional features to their projects. It provides a curated list of officially supported plugins that can be easily installed and configured. Webpack also supports plugins, but it requires developers to manually configure and install them.

  6. Configurability: Vue CLI abstracts away the underlying Webpack configuration, providing developers with an opinionated and simplified development experience. It allows developers to override the default configuration by modifying a specific configuration file. Webpack, on the other hand, gives developers more control over the configuration process, allowing them to fine-tune every aspect of the bundling process.

In summary, Vue CLI is a command line interface tool that simplifies project setup and management for Vue.js projects, while Webpack is a module bundler that focuses on bundling JavaScript files and their dependencies. Vue CLI automatically manages dependencies, follows a convention-based project structure, has a rich plugin ecosystem, and provides a simplified development experience. Webpack requires manual dependency management, allows flexible project structure, supports plugins, and provides more control over the bundling process.

Decisions about Vue CLI and Webpack
Aleksandr Filatov
Contract Software Engineer - Microsoft · | 4 upvotes · 282.3K views
Why migrated?

I could define the next points why we have to migrate:

  • Decrease build time of our application. (It was the main cause).
  • Also jspm install takes much more time than npm install.
  • Many config files for SystemJS and JSPM. For Webpack you can use just one main config file, and you can use some separate config files for specific builds using inheritance and merge them.
See more

We mostly use rollup to publish package onto NPM. For most all other use cases, we use the Meteor build tool (probably 99% of the time) for publishing packages. If you're using Node on FHIR you probably won't need to know rollup, unless you are somehow working on helping us publish front end user interface components using FHIR. That being said, we have been migrating away from Atmosphere package manager towards NPM. As we continue to migrate away, we may publish other NPM packages using rollup.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Vue CLI
Pros of Webpack
  • 1
    GUI for installing dependencies
  • 1
    Visual Web Interface
  • 1
    Detects and run npm tasks
  • 309
    Most powerful bundler
  • 182
    Built-in dev server with livereload
  • 142
    Can handle all types of assets
  • 87
    Easy configuration
  • 22
    Laravel-mix
  • 4
    Overengineered, Underdeveloped
  • 2
    Makes it easy to bundle static assets
  • 2
    Webpack-Encore
  • 1
    Redundant
  • 1
    Better support in Browser Dev-Tools

Sign up to add or upvote prosMake informed product decisions

Cons of Vue CLI
Cons of Webpack
    Be the first to leave a con
    • 15
      Hard to configure
    • 5
      No clear direction
    • 2
      Spaghetti-Code out of the box
    • 2
      SystemJS integration is quite lackluster
    • 2
      Loader architecture is quite a mess (unreliable/buggy)
    • 2
      Fire and Forget mentality of Core-Developers

    Sign up to add or upvote consMake informed product decisions

    What companies use Vue CLI?
    What companies use Webpack?
    See which teams inside your own company are using Vue CLI or Webpack.
    Sign up for StackShare EnterpriseLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Vue CLI?
    What tools integrate with Webpack?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    What are some alternatives to Vue CLI and Webpack?
    Meteor
    A Meteor application is a mix of JavaScript that runs inside a client web browser, JavaScript that runs on the Meteor server inside a Node.js container, and all the supporting HTML fragments, CSS rules, and static assets.
    Nuxt.js
    Nuxt.js presets all the configuration needed to make your development of a Vue.js application enjoyable. You can use Nuxt.js for SSR, SPA, Static Generated, PWA and more.
    npm
    npm is the command-line interface to the npm ecosystem. It is battle-tested, surprisingly flexible, and used by hundreds of thousands of JavaScript developers every day.
    Create React App
    Create React apps with no build configuration.
    Angular CLI
    A command-line interface tool that you use to initialize, develop, scaffold, and maintain Angular applications. You can use the tool directly in a command shell, or indirectly through an interactive UI such as Angular Console.
    See all alternatives