Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: incorrect content hash #4140

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

chenchen32
Copy link

I have the same issue with #3615 , so I tried to solve it.

The current logic:

Uses the loaderUtils.interpolateName method to generate the filename, and then passed it to AddWorkerEntryPointPlugin and its internal SingleEntryPlugin.

The problem:

The generated filename only depends on the content of the worker's entry file, but does not consider changes in the content of the referenced dependency files

My changes:

  1. passes the filename template directly to SingleEntryPlugin, allowing webpack to handle the hash logic.

  2. since the contenthash can only be determined after the webpack assets optimization phase, some logic needs to be changed to be asynchronous:

    2.1. The loader has been changed to be asynchronous.

    2.2. A task is created for each childCompiler. The final filename for each worker is collected in the afterOptimizeAssets phase of the childCompilation, and then invoke task's resolve method.

    2.3. When all tasks are resolved, the loader calls the callback and writes the collected filenames to editor.main.js.

@chenchen32 chenchen32 closed this Aug 27, 2023
@chenchen32 chenchen32 reopened this Aug 27, 2023
@chenchen32
Copy link
Author

@chenchen32 please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@microsoft-github-policy-service agree [company="{your company}"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@microsoft-github-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement

@microsoft-github-policy-service agree

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant