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

Writing Your Own Templates section does not work #1826

Open
einazare opened this issue Sep 26, 2023 · 2 comments
Open

Writing Your Own Templates section does not work #1826

einazare opened this issue Sep 26, 2023 · 2 comments

Comments

@einazare
Copy link

Current behaviour 💣

I am trying to use the templateParameters to pass some variables into my template and it does not work.
I have followed the examples shown:

Expected behaviour ☀️

I would like my <%= title %> to be replaced with the actual value of my templateParameters.title value, i.e. value located inside locales/de-DE.json or locales/en-GB.json.
I've also tried to modify the <%= title %> to <%= htmlWebpackPlugin.options.templateParameters.title %>.

Reproduction Example 👾

I have created a small repository to reproduce this issue here: https://github.com/einazare/html-webpack-plugin-18n-generator
You will need to:

  1. Install the dependencies with npm install
  2. Build the application with npm run build
  3. Open dist/index.html
  4. You will see <%= title %> was not replaced by Some title written in English (Great Britain)

Environment 🖥

All the versions from my package.json file here:

  "dependencies": {
    "copy-webpack-plugin": "11.0.0",
    "html-webpack-plugin": "5.5.0",
    "webpack": "5.88.2",
    "webpack-cli": "4.9.2",
    "webpack-dev-server": "4.8.1"
  },
  "devDependencies": {
    "css-loader": "6.7.1",
    "html-loader": "4.2.0",
    "style-loader": "3.3.1"
  }

Also, the output of the above commands here:

node -e "var os=require('os');console.log('Node.js ' + process.version + '\n' + os.platform() + ' ' + os.release())"
Node.js v18.16.0
darwin 22.6.0
npm --version
9.5.1
npm ls webpack
[email protected] /Users/einazare/Desktop/html-webpack-plugin-18n-generator
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ ├─┬ @webpack-cli/[email protected]
│ │ └── [email protected] deduped
│ └── [email protected] deduped
├─┬ [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected] deduped
│ └── [email protected] deduped
└─┬ [email protected]
  └─┬ [email protected]
    └── [email protected] deduped
npm ls html-webpack-plugin
[email protected] /Users/einazare/Desktop/html-webpack-plugin-18n-generator
└── [email protected]

Thank you 🙏

@einazare
Copy link
Author

I've managed to partially solve the issue by removing from my webpack.config.js the following code:

        {
          test: /\.html$/,
          use: ["html-loader"]
        },

But the <%= title %> from my .js file is still not being replaced with the templateParameter.

Also, another issue, is that, if I remove the rule for html-loader the favicon is not bundled anymore 😢 .

@KaranLala
Copy link

KaranLala commented Jan 17, 2024

I just faced this same issue. Looking at the link below, it says "However this also means that in the following example webpack will use the html loader for your template. This will cause html minification and it will also disable the ejs/lodash fallback loader."

So I would assume that the ejs/lodash loader is required to set the templateParameters? Which explains why disabling the html-loader is working in your case. To bundle the favicon, you can use the favicon option in html-webpack-plugin?

https://github.com/jantimon/html-webpack-plugin/blob/main/docs/template-option.md

Edit:

There seems to be a way to run both html-loader and ejs loader if needed: https://stackoverflow.com/questions/56726509/webpack-chaining-loaders/61795641#61795641

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

No branches or pull requests

2 participants