Webpack inject js/css file content directly to index.html

谁说我不能喝 提交于 2019-12-10 10:47:56

问题


I have code like this

<html>
    <head>
        <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css">
        <link href="path_to_css/some_css.css" rel="stylesheet" type="text/css">
    </head>
    <body>
        ...
        <script src="bootstrap/js/bootstrap.min.js"></script>
        <script src="jquery/jquery.min.js"></script>
    </body>
</html>

and I need plugin/loader or other way to get my html file with replaced link and script tags to content of this files, is there any way to do it?

Finnaly i wrote own plugin which fit my needs include-file-webpack-plugin


回答1:


It actually can be accomplish with:

  1. npm i --save-dev css-loader to-string-loader
  2. configure your webpack with

    module: [
        rules: [
          {
            test: /\.css$/,
            use: ['to-string-loader', 'css-loader']
          }
        ]
      }
    
  3. Then in your project you can access the css as string like so

    const cssContent= require('path_to_css/some_css.css'); console.log('your css is: ', cssContent.toString());

    • Or maybe you want inject it manually to the page with:

      const boostrap= require('bootstrap/dist/css/bootstrap.min.css');
      let style= document.createElement('style');
      style.id= 'boostrap';
      style.setAttribute('type', 'text/css');
      style.innerHTML= boostrap.toString();
      document.body.appendChild(style);
      

Reference

  1. Inject CSS stylesheet
  2. css-loader


来源:https://stackoverflow.com/questions/43073673/webpack-inject-js-css-file-content-directly-to-index-html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!