Git Product home page Git Product logo

Comments (11)

webdiscus avatar webdiscus commented on June 7, 2024 1

I will try to find a workaround for this problem.

from pug-plugin.

webdiscus avatar webdiscus commented on June 7, 2024 1

@YUCLing
I found the problem, I can fix it!

from pug-plugin.

YUCLing avatar YUCLing commented on June 7, 2024 1

Oh, I see you do solve the inline JS throwing errors in this situation, although the HMR code still exists.
Making it coexists with HMR code could be a solution, I don't see any further issues so far.

This issue can be closed since things are working now. 😃

from pug-plugin.

webdiscus avatar webdiscus commented on June 7, 2024 1

@YUCLing

yes, inlined JS contains the HRM code (inc. source maps) and works in a Browser very well with reference to source file.

from pug-plugin.

webdiscus avatar webdiscus commented on June 7, 2024

Hi @YUCLing,

thank you for the issue report!

Temporary solution

Pass the isDev variable into Pug template and use inline JS only if isDev is false.

Pass the mode into webpack.config.js:
packages.json

{
  "scripts": {
    "start": "webpack serve --mode=development",
    "build": "webpack --mode=production --progress",
  },
}

webpack.config.js

module.exports = (env, argv) => {
  const isDev = argv.mode === 'development';
  
  return {
    entry: {
      index: './src/views/home/index.pug',
    },
    plugins: [
      new PugPlugin(),
    ],
    module: {
      rules: [
        {
          test: /.pug$/,
          loader: PugPlugin.loader,
          options: {
            data: {
              isDev, // pass variable in all Pug files 
            }
          }
        },
      ],
    },
  };
}

Pug file

head
  if isDev
    script(src=require('./main.js') defer='defer')
  else
    script=require('./main.js?inline') 
body

from pug-plugin.

YUCLing avatar YUCLing commented on June 7, 2024

Sad to hear this, but still appreciate your effort.

Since I can accept using extracted JS in dev mode, so the temporary hack works for me. 😃
However, this will be helpful and can make the code simpler if there will be a solution found.

from pug-plugin.

webdiscus avatar webdiscus commented on June 7, 2024

@YUCLing

I have fixed the issue in v4.9.2.

from pug-plugin.

YUCLing avatar YUCLing commented on June 7, 2024

Strange, I'm still getting unexpected output here...

Let me see if I can make a minimal reproduction. 😄

from pug-plugin.

webdiscus avatar webdiscus commented on June 7, 2024

@YUCLing

unexpected output

In webpack serve mode or by build too?

from pug-plugin.

YUCLing avatar YUCLing commented on June 7, 2024

@YUCLing

unexpected output

In webpack serve mode or by build too?

Still serve only since I only use HMR in dev mode. (HMR is not enabled in build mode)

from pug-plugin.

webdiscus avatar webdiscus commented on June 7, 2024

The same issue was described by mini-css-extract-plugin issue.
It is a limitation of Webpack.

from pug-plugin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.