Skip to content

Conflicts with htmlWebpackPlugin in building process when using template literals #126

@evanryuu

Description

@evanryuu

Describe the bug
This plugin overrides some of the htmlWebpackPlugin options. This may lead to an error when building if you use the es6 syntax ${} .

e.g.

<!-- template html -->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
...
  <script>
    const str = 'world';
    const data = `hello ${str}`
  </script>
...
</body>
</html>

To Reproduce
My Node.js version is set to 18.12.0. I think >= 14.18.0 can also reproduce the problem.

Steps to reproduce the behavior:

  1. Clone or download .zip file from repository https://github.com/evankwolf/windicss-webpack-example
  2. Run npm install then npm run build
  3. See error below errors
ERROR in Template execution failed: ReferenceError: str is not defined

ERROR in   ReferenceError: str is not defined

  - index.html:11
    G:/Project/others/windicss-webpack-example-master/public/index.html:11:10

  - index.html:14 module.exports
    G:/Project/others/windicss-webpack-example-master/public/index.html:14:3

  - index.js:450
    [windicss-webpack-example-master]/[html-webpack-plugin]/index.js:450:16

  - task_queues:95 process.processTicksAndRejections
    node:internal/process/task_queues:95:5

  - async Promise.all

Expected behavior
Build successfully

Screenshots
image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions