标签: webpack-html-loader

一起使用file-loader和html-loader

我正在开发一个角度应用程序,它需要将html文件提取为纯HTML文件,同时应检查是否<img src="...">需要这些图像(作为资源).此外,图像基于根路径(so /images/something.png),它们需要相对于webpack context设置(基本路径)进行解析.

我怎样才能做到这一点?无法让html-loader与文件加载器很好地协同工作.由于前者输出一个JS文件(带有require语句),后者需要一个普通的HTML文件.

webpack webpack-html-loader webpack-file-loader

4
推荐指数
1
解决办法
8059
查看次数

使用Webpack从Typescript导入HTML

我正在尝试使用webpack将html导入到typescript中的变量中。

这是我的设置:

package.json:

{
  "devDependencies": {
    "awesome-typescript-loader": "^3.2.3",
    "html-loader": "^0.5.1",
    "ts-loader": "^2.3.7",
    "typescript": "^2.5.3",
    "webpack": "^3.6.0"
  }
}
Run Code Online (Sandbox Code Playgroud)

webpack.config.js:

const path = require('path');
const webpack = require('webpack');

module.exports = {
  context: path.join(__dirname),
  entry: './main',
  output: {
    path: path.join(__dirname, 'dist'),
    filename: 'app.js'
  },
  resolve: {
    // Add '.ts' and '.tsx' as resolvable extensions.
    extensions: [".ts", ".js"],
    modules: [
      "node_modules",
      path.join(__dirname, 'app'),
    ],
  },
  module: {
    rules: [
      {
        enforce: 'pre',
        test: /\.html$/,
        loader: 'html-loader',
      },
      // Faster alternative to ts-loader
      { …
Run Code Online (Sandbox Code Playgroud)

typescript webpack webpack-html-loader

3
推荐指数
1
解决办法
3981
查看次数

使用pug-html-loader将数据传递到pug(无法读取undefined的属性)

根据pug-html-loader的自述文件,加载器接受一个data对象,该对象作为的一部分传递options给模板。虽然optionspug API参考中没有提供,但我发现的grunt插件(grunt-contrib-pug)使用API​​的方式相同。

我为加载程序指定了以下选项:

  loader: 'pug-html-loader',
  options: {
    pretty: true,
    exports: false,
    debug: !env.production,
    compileDebug: !env.production,
    cache: config.build.useCaching,
    doctype: 'html',
    data: {
      title:    config.metadata.title,
      baseUrl:  config.build.baseUrl,
      server:   env.server,
      metadata: config.metadata
    }
  }
Run Code Online (Sandbox Code Playgroud)

根据这个问题,我想通过以下方式访问:

title= data.title
Run Code Online (Sandbox Code Playgroud)

但是,编译时总是遇到以下错误:

ERROR in   Error: Child compilation failed:
  Module build failed: TypeError: Cannot read property 'title' of undefined
Run Code Online (Sandbox Code Playgroud)

出于调试目的,我在模板中包含以下行:

-
  console.log(' DATA! ' + data);
Run Code Online (Sandbox Code Playgroud)

结果是:

DATA! undefined
Run Code Online (Sandbox Code Playgroud)

我还通过声明一些乱码而不是对象(例如,字符串,纯json,数字..)来确保数据正确地传递给pug,然后pug编译器会抱怨数据格式无效等。 。

有人面临同样的问题吗?

javascript node.js webpack webpack-html-loader pug

2
推荐指数
1
解决办法
1007
查看次数

如何修复 Webpack Dev Server 不会忽略的 HTML 文件注释?

我有一个webpack(v3.5.6) 构建,使用html-loader多个 HTML 文件并将其处理到自身中,使用 .html将较小的图像嵌入到 HTML 中url-loader。该配置非常适合构建,但在使用Webpack Dev Server(v2.7.1)时失败,因为Webpack Dev Server似乎没有忽略源 HTML 文件中的注释。它试图从 HTML 的注释部分获取资源,而其中一些资源此时不存在。

这是来自的示例错误Webpack Dev Server

./about-us.html 中的错误
找不到模块:错误:无法解析“C:\Users\usr\dev\www”中的“./img/old-image.png”
 @ ./about-us.html
 @ ./entry.js
 @ multi (webpack)-dev-server/client?http://localhost:8080 ./entry.js

我的(未完成的)webpack配置如下:

webpack.common.js

const path = require('path');
const webpack = require('webpack');

const CleanWebpackPlugin = require('clean-webpack-plugin');

const env = process.env.NODE_ENV;

模块.出口 = {
  条目:'./entry.js',
  输出: {
    路径:path.resolve(__dirname, 'dist'),
    文件名:'bundle.js'
  },
  模块: {
    规则:[{
        测试:/\.html$/,
        用: [
          {
            加载器:'文件加载器', …

webpack webpack-dev-server webpack-html-loader

2
推荐指数
1
解决办法
1887
查看次数

Html-loader + file-loader 未捆绑正确的图像源

我计划在一个项目中使用 Webpack,并使用 Html-loader + file-loader 设置工作流程,以获取带有图像动态 src 的生产 html 文件,正如 Colt Steele 在本视频中所教授的那样。这是我的 src/ 文件:

索引.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Popular on Letterboxd</title>
</head>
<body>
  <img src="./assets/chira.jpg" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

索引.js:

import img from './assets/chira.jpg';
import "./main.css";
Run Code Online (Sandbox Code Playgroud)

和main.css

body {
  background-color: darkblue;
}
Run Code Online (Sandbox Code Playgroud)

这些是我的配置文件(我有一个用于开发和生产的个人文件,以及两个共同的配置文件):

webpack.common.js:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/index.js',

  devtool: "none",
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    })
  ],
  module: {
    rules: [
      {
        test: /\.css$/, …
Run Code Online (Sandbox Code Playgroud)

html webpack webpack-html-loader webpack-file-loader webpack-bundle

2
推荐指数
1
解决办法
4786
查看次数

为什么我在 Webpack 5.11.0: 1 ERROR in child compilers 中得到这个错误?

所以我在尝试编译时在我的 webpack 代码中收到此错误,当我以生产模式启动时会发生这种情况,当我删除 html-loader 时,错误消失了,我还包括要使用的 HtmlWebpackPlugin 和 file-loader :

webpack.prod.js:

const path = require("path");
const common = require('./webpack.common.js');
const { merge } = require('webpack-merge');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');

module.exports = merge(common, {
  mode: "production",
  output: {
    publicPath: '',
    filename: "js/[name].[contenthash].bundle.js",
    path: path.resolve(__dirname, "dist")
  },
  plugins: [
    new CleanWebpackPlugin()
  ]
});
Run Code Online (Sandbox Code Playgroud)

webpack.common.js:

const path = require("path");
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: {
    main: "./src/index.js"
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/html/index.html'
    })
  ],
  module: {
    rules: …
Run Code Online (Sandbox Code Playgroud)

webpack webpack-html-loader html-webpack-plugin webpack-file-loader

1
推荐指数
1
解决办法
1364
查看次数

配置html-loader以替换ng-src属性

如何配置html-loader以使用正确的路径替换我的ng-src属性?我有一个遗留的应用程序,有类似的东西 -

<img ng-src="{{path}}/test.jpg" />
Run Code Online (Sandbox Code Playgroud)

angularjs webpack webpack-html-loader

0
推荐指数
1
解决办法
710
查看次数