Skip to content

[ROADMAP] Webpack-CLI v4 Roadmap #717

Closed

Description

@evenstensberg

Summary

This is the roadmap to keep progress of webpack-cli v4 which is on the next branch of webpack.

TODO

Stable

  • Choose a lead developer ALWAYS TO READ

In order to avoid conflicts and misunderstandings what happened before, together we select a leading developer. This person makes the final decision, when a dispute arises. If a situation arises when the whole team believes that the lead developer is wrong, then one of the developers from @webpack/core-team is involved in the dispute, his/her/it decision is last and not subject to dispute.

Post-beta (non-blocking)

Feel free to come up with feedback

Activity

  1. pinned this issue on Dec 26, 2018
  2. renatoagds commented on Dec 28, 2018

    @renatoagds

    @evenstensberg cli-gui will be released with next or standalone?

  3. ematipico commented on Dec 28, 2018

    @ematipico
    Contributor

    The UI package will be released as a standalone package, probably we will release a minor version just to support the cli command

  4. daniele-orlando commented on Jan 23, 2019

    @daniele-orlando

    Nice roadmap of solid improvements.

  5. evenstensberg commented on Nov 6, 2019

    @evenstensberg
    MemberAuthor

    Roadmap blocking a beta as per now:

    • Progress flag needs a rebrush
    • Adding interpret
    • Supporting mjs and pre-processing files
    • Adding verbose flags
    • Dev-server version bump
  6. evenstensberg commented on Nov 12, 2019

    @evenstensberg
    MemberAuthor

    Removed webpack-config-plugins as it's not fit for webpack v5 yet. Also upgraded our peerDep + dep to webpack v5. After fixing failing tests and those regressions we are go.

  7. TheLarkInn commented on Nov 21, 2019

    @TheLarkInn
    Member

    Let's add #1126 to blocking list.

  8. godcrampy commented on Nov 22, 2019

    @godcrampy
    Contributor

    I'd like to write some smoke-tests! Can I get some pointers as to what kind of smoke tests are to be written besides the ones which are already present. What all stuff are these tests supposed to display?

  9. evenstensberg commented on Nov 22, 2019

    @evenstensberg
    MemberAuthor

    Fixing the smoketests for watch mode would be really nice, right now those are kinda flaky, so we've disabled the CI to run them.

    Could you check that out? The tests are supposed to show that the CLI is rigid and doesn't break under harsh conditions 👍

  10. endiliey commented on Nov 22, 2019

    @endiliey

    Hi there, this is sort of unrelated but can I suggest to use "Squash and Merge pull request" instead of "Merge pull request" moving forward. Currently, its very hard to track changes between version of webpack-cli because a lot of commits in a PR is all retained. Here is an example:

    v3.3.5...next

    Due to using "merge pull request", there are lot of "extra" commits being sent here. Even something like "fix: revert :("
    image

    If squash merge was used, it will be something like below, which is more cleaner

    An example is webpack/webpack-dev-server@v3.8.2...v3.9.0
    Less number of commits, and related PR is linked
    image

  11. evenstensberg commented on Nov 22, 2019

    @evenstensberg
    MemberAuthor

    I think one of the reasons why we changed from squash to merge was because people wanted the entire commit log, but I'm happy to do squashing, it's cleaner, if there's no objections

  12. godcrampy commented on Nov 22, 2019

    @godcrampy
    Contributor

    I tried running the smoketests as is without any changes. Currently they return Test for child compilation hang, exiting. Is this delay a problem with core webpack or is the current smoketest causing it to behave this way.

    Also, for the temporary files that are created during the smoketest, will it help if instead of appending comments we add some javascript snippets to check the watch mode performance.

  13. evenstensberg commented on Nov 25, 2019

    @evenstensberg
    MemberAuthor

    Do you have a stack trace @godcrampy ?

  14. godcrampy commented on Nov 25, 2019

    @godcrampy
    Contributor

    When I run $ npm run smoketest I get the following:

    ============================ RUNNING FOLDER: watch ============================
    ============================ ITERATION: 1/100  =====================================
    Running: ./watch/watch.array.smoketest.js
    Running: ./watch/watch.single.smoketest.js
    
    ============================ ARRAY/CHILD COMPILATION ============================
    
    [
      {
        output: {
          filename: './prod.js',
          path: '/home/godcrampy/Code/Sandbox/node-sandbox/webpack-next/repos/webpack-cli/smoketests/watch/binary2'
        },
        target: 'node',
        entry: '/home/godcrampy/Code/Sandbox/node-sandbox/webpack-next/repos/webpack-cli/smoketests/watch/index.js',
        mode: 'production',
        devtool: 'eval-cheap-module-source-map',
        plugins: [ [DefinePlugin] ]
      },
      {
        output: {
          filename: './dev.js',
          path: '/home/godcrampy/Code/Sandbox/node-sandbox/webpack-next/repos/webpack-cli/smoketests/watch/binary'
        },
        target: 'node',
        entry: '/home/godcrampy/Code/Sandbox/node-sandbox/webpack-next/repos/webpack-cli/smoketests/watch/index.js',
        mode: 'development',
        plugins: [ [DefinePlugin] ]
      }
    ]
    
    assert.js:92
      throw new AssertionError(obj);
      ^
    
    AssertionError [ERR_ASSERTION]: Test for child compilation hang, exiting
        at Timeout._onTimeout (/home/godcrampy/Code/Sandbox/node-sandbox/webpack-next/repos/webpack-cli/smoketests/watch/watch.array.smoketest.js:63:24)
        at listOnTimeout (internal/timers.js:531:17)
        at processTimers (internal/timers.js:475:7) {
      generatedMessage: false,
      code: 'ERR_ASSERTION',
      actual: true,
      expected: false,
      operator: 'strictEqual'
    }
    
    ============================ SINGLE COMPILATION ============================
    
    {
      entry: '/home/godcrampy/Code/Sandbox/node-sandbox/webpack-next/repos/webpack-cli/smoketests/watch/index.js',
      target: 'web',
      output: {
        filename: 'bundle.js',
        path: '/home/godcrampy/Code/Sandbox/node-sandbox/webpack-next/repos/webpack-cli/smoketests/watch/bin'
      }
    }
    
    assert.js:92
      throw new AssertionError(obj);
      ^
    
    AssertionError [ERR_ASSERTION]: Test for child compilation hang, exiting
        at Timeout._onTimeout (/home/godcrampy/Code/Sandbox/node-sandbox/webpack-next/repos/webpack-cli/smoketests/watch/watch.single.smoketest.js:58:24)
        at listOnTimeout (internal/timers.js:531:17)
        at processTimers (internal/timers.js:475:7) {
      generatedMessage: false,
      code: 'ERR_ASSERTION',
      actual: true,
      expected: false,
      operator: 'strictEqual'
    }
    

    The exact iteration it fails varies between 1 to 3 for my machine. The current error is shown when the webpack compiler exceeds 5 seconds for compiling the given changes on watch mode.I think that the arbitrary five second wait time to decide whether the process is stuck is a bad metric.

    These exceptions come from here:
    https://github.com/webpack/webpack-cli/blob/next/smoketests/watch/watch.single.smoketest.js#L56
    https://github.com/webpack/webpack-cli/blob/next/smoketests/watch/watch.array.smoketest.js#L60

  15. 24 remaining items

  16. alexander-akait commented on Jun 9, 2020

    @alexander-akait
    Member

    Why we need support multiple stats?

  17. snitin315 commented on Jun 9, 2020

    @snitin315
    Contributor

    not multiple stats but multiple types for stats.

    I'm thinking to add a property multiType : true for stats inside cli-flags.js ?
    Any suggestions ?

  18. alexander-akait commented on Jun 9, 2020

    @alexander-akait
    Member

    @snitin315 I can't understand, please clarify

  19. snitin315 commented on Jun 9, 2020

    @snitin315
    Contributor

    No worries I will create a Draft PR for same.

  20. snitin315 commented on Jul 28, 2020

    @snitin315
    Contributor

    0CJS: webpack-cli should be shipped with info and init commands out of box, need discussion about serve command.

    I think now cli supports info and init out of the box.

    "@webpack-cli/info": "^1.0.1-alpha.4",
    "@webpack-cli/init": "^1.0.1-alpha.5",

    /cc @rishabh3112 am I right?

  21. rishabh3112 commented on Jul 28, 2020

    @rishabh3112
    Contributor

    Yes, but serve is still left for integration as decided.

  22. alexander-akait commented on Jul 28, 2020

    @alexander-akait
    Member

    @rishabh3112 Let's send a commit with integration, we will fix an problems with options late

  23. rishabh3112 commented on Jul 29, 2020

    @rishabh3112
    Contributor

    @evilebottnawi Sure, I will send PR then.

  24. billyjanitsch commented on Sep 23, 2020

    @billyjanitsch
    Contributor

    Hi, I just wanted to cross-link this comment #1222 (comment) because this might be the more appropriate issue:

    Please, please reconsider having webpack-cli depend directly on @webpack-cli/init (#1609). The latter is an enormous module with so many dependencies (particularly jscodeshift, which is huge and very outdated). This doesn't affect bundle size, of course, but it does affect install time and npm's ability to dedupe modules. Plus, the init functionality is only useful when initializing a project, and most projects probably don't use it to initialize themselves anyway.

    This issue came up back when webpack v4 was in beta. There's nothing wrong with @webpack-cli/init existing, but webpack-cli is currently required to invoke webpack via CLI and it would be really nice to have some way of doing this without bringing in half of the npm registry. All that most people need is to be able to add a simple build script to package.json. webpack-cli v3 did the right thing by including only this minimal core.

    In an empty project, npm install webpack-cli@next (4.0.0-rc.0) currently installs 82mb of dependencies (!) whereas npm install webpack-cli@3 only installs 6mb.

  25. alexander-akait commented on Sep 23, 2020

    @alexander-akait
    Member

    @billyjanitsch yes, we will do it

  26. lopopolo commented on Oct 9, 2020

    @lopopolo

    @evilebottnawi is there a ticket to track the removal of @webpack-cli/init as a required dependency of webpack-cli?

  27. alexander-akait commented on Oct 10, 2020

    @alexander-akait
    Member

    @lopopolo We search way to not remove it, but reduce size

  28. unpinned this issue on Oct 15, 2020
  29. alexander-akait commented on Dec 30, 2020

    @alexander-akait
    Member

    webpack interactive

    We have separate issue and PR for this

    Allow other packages register own command and flags for CLI

    Already supports, but not documented, we need do some improvements (I will do it in near future)

    Union generate-loader + generate-plugin + webpack-defaults, we need discussion how to better to do it

    We have separate issue for this

    Todo for tests also have own issues

    So let's close

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions