Html-Webpack-Plugin 模板:模块构建失败:SyntaxError:意外的标记

2024-02-20

当我尝试使用 index.ejs 模板文件使用 html-webpack-plugin 进行构建时,会引发以下错误:

即使我尝试加载为 .html 文件或安装 ejs-loader,仍然失败。我不确定 ejs-loader 是否与 html-webpack-plugin 一起安装。

其他一些人也有同样的问题,但是他们的 webpack 版本是 @1 并且该链接上的解决方案对我不起作用。,

https://github.com/jantimon/html-webpack-plugin/issues/273 https://github.com/jantimon/html-webpack-plugin/issues/273

错误于 ./node_modules/html-webpack-plugin/lib/loader.js!./src/index.ejs

模块构建失败:语法错误:意外的标记 (1:1)

错误图像 https://i.stack.imgur.com/DXNxT.png

src/index.ejs

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="/assets/css/bootstrap.min.css">
    <title>My Library</title>
  </head>
  <body>
    <div class="main-content"></div>
    <footer class="footer-container"><p><span>Source: </span><a href="https://github.com/arikanmstf/mylibrary">https://github.com/arikanmstf/mylibrary</a></p></footer>
  </body>
</html>

webpack.config.js:

const ExtractTextPlugin = require("extract-text-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const UglifyJSPlugin = require("uglifyjs-webpack-plugin");
const webpack = require("webpack");
const argv = require("yargs").argv;
const path = require("path");

const extractCSS = new ExtractTextPlugin("dist/style.css");

const JS_JSX_PATTERN = /\.jsx?$/;
const SCSS_PATTERN = /\.scss$/;
const ASSET_PATTERN = /\.(jpe?g|png|gif|svg|ttf|otf|eot|woff(2)?)(\?v=\d+)?$/;
const DEV_SERVER_PORT = 8080;

const configResolve = require.resolve("./src/config/" + argv.env + ".js");
const config = require("./src/config/" + argv.env + ".js");

const isProd = argv.env === 'prod';
const isDev = argv.env === 'dev';

let plugins = [extractCSS];
let rules = [
  {
    exclude: /node_modules/,
    loader: "babel-loader",
    query: {
      presets: ["react", "es2015", "stage-1"]
    }
  },
  {
    test: SCSS_PATTERN,
    use: extractCSS.extract({
      fallback: "style-loader",
      use: [{
        loader: "css-loader",
        options: { minimize: isProd }
      },
        "sass-loader"
      ]
    })
  }
];

if (isProd) {
  plugins.push(
    new UglifyJSPlugin(),
    new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: JSON.stringify('production')
      }
    })
  );
}

plugins.push(
  new HtmlWebpackPlugin({
    template: 'src/index.ejs'
  })
);

rules.push({
  test: JS_JSX_PATTERN,
  exclude: /node_modules/,
  enforce: 'pre',
  loader: 'eslint-loader',
  options: {
    failOnWarning: false,
    failOnError: isProd,
    quiet: isProd
  }
});

rules.push({
  test: ASSET_PATTERN,
  exclude: /node_modules/,
  loader: 'file-loader',
  options: {
    name: 'dist/[path][name].[ext]?[hash]',
    context: 'assets'
  }
});

module.exports = {
  entry: [
    "./src/scripts/index.jsx",
    "./src/style/index.scss"
  ],
  output: {
    path: __dirname,
    publicPath: config.homeUrl,
    filename: "dist/bundle.js"
  },
  module: {
    rules: rules
  },
  resolve: {
    extensions: [".js", ".jsx"],
    modules: [
      path.resolve(__dirname, './src/scripts'),
      path.resolve(__dirname, './node_modules'),
      path.resolve(__dirname, './assets')
    ],
    alias: {
      config$: configResolve
    }
  },
  devServer: {
    port: DEV_SERVER_PORT,
    historyApiFallback: true,
    contentBase: "./"
  },
  plugins: plugins
};

package.json 依赖项:

"devDependencies": {
    "babel-core": "^6.2.1",
    "babel-eslint": "7.2.3",
    "babel-loader": "^7.1.0",
    "babel-preset-es2015": "^6.1.18",
    "babel-preset-react": "^6.1.18",
    "chai": "^3.5.0",
    "chai-jquery": "^2.0.0",
    "css-loader": "^0.28.4",
    "eslint": "3.19.0",
    "eslint-config-airbnb": "15.0.1",
    "eslint-loader": "1.7.1",
    "eslint-plugin-import": "^2.7.0",
    "eslint-plugin-jsx-a11y": "5.0.3",
    "eslint-plugin-react": "7.0.1",
    "extract-text-webpack-plugin": "^3.0.0",
    "file-loader": "^0.11.2",
    "html-webpack-plugin": "^2.29.0",
    "jquery": "^2.2.1",
    "jsdom": "^8.1.0",
    "mocha": "^2.4.5",
    "node-sass": "^4.5.3",
    "react-router-dom": "^4.1.1",
    "sass-loader": "^6.0.5",
    "style-loader": "^0.18.1",
    "uglifyjs-webpack-plugin": "^0.4.3",
    "webpack": "^3.3.0",
    "webpack-dev-server": "^2.6.1",
    "yargs": "^8.0.1"
  },
  "dependencies": {
    "axios": "^0.16.1",
    "babel-preset-stage-1": "^6.1.18",
    "prop-types": "^15.5.10",
    "qs": "^6.4.0",
    "react": "^15.6.1",
    "react-dom": "^15.6.1",
    "react-dropzone": "^3.13.3",
    "react-redux": "^5.0.5",
    "react-router": "^4.1.1",
    "redux": "^3.6.0",
    "redux-thunk": "^2.2.0"
  }

你忘记添加一个test您的规则上的财产babel-loader,这意味着它适用于所有文件,并且 Babel 不处理 HTML。从技术上讲,它将其解释为 JSX,但是<!DOCTYPE html>不是有效的 JSX,因为 JavaScript 标识符不能包含!.

因为你已经有一个正则表达式.js(x)规则应该是(我也改变了query to options, 因为query已弃用 https://webpack.js.org/configuration/module/#rule-options-rule-query,但仍然有效):

{
  test: JS_JSX_PATTERN,
  exclude: /node_modules/,
  loader: "babel-loader",
  options: {
    presets: ["react", "es2015", "stage-1"]
  }
},
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Html-Webpack-Plugin 模板:模块构建失败:SyntaxError:意外的标记 的相关文章

随机推荐

  • 如何修复 pip 安装错误:“环境错误:[Errno 42] 非法字节序列”?

    我正在尝试下载kivy模块使用pip 当我运行pip install command 我得到一个错误 Could not install packages due to an EnvironmentError Errno 42 Illega
  • 我获取的资源不在项目的构建路径上[重复]

    这个问题在这里已经有答案了 当我尝试 组织导入 或尝试访问任何类属性时 我得到了资源不在项目的构建路径上 我正在使用 ant 构建我的项目 我尝试在 javabuilpath gt 项目中配置我的构建路径 但它没有向我显示我的 src 文件
  • 如何跳转到 RichTextBox 中的特定行?

    我正在寻找如何跳转到特定行的示例代码RichTextBox in WPF 我不知道如何做到这一点 在 winForms 中它非常简单 因为我可以自由设置 SelectionStart 和 Selection Length 这与 WPF 中不
  • 当[:punct:]太多时[重复]

    这个问题在这里已经有答案了 我正在清理 R 中的文本字符串 我想删除所有标点符号except撇号和连字符 这意味着我无法使用 punct 字符类 除非有一种说法 punct but not lt gt 并且反引号必须出来 对于上述大多数情况
  • 在 Visual Studio 2010 C/C++ 中,“重新扫描解决方案”操作有何作用?

    我正在尝试编译第三方项目 但遇到一些链接问题 我在解决小问题时没有遇到太大麻烦 但我注意到它们是项目或解决方案的上下文菜单中的 重新扫描解决方案 选项 我点击了它 但它似乎没有做任何事情 它到底有什么作用 此命令更新项目浏览数据库中的过时文
  • 如何使用 sed 只删除三个空行?

    如何使用 sed 只删除三个空行 例如 我的文本 txt line1 line2 line3 line4 使用 sed 我希望结果看起来像这样 我的文本 txt line1 line2 line3 line4 我能够删除双空行 sed i
  • Azure SignalR 服务连接未处于活动状态

    我从 2 4 0 更新了我们的信号包并添加了RunAzureSignalR代替RunSignalR 在 de 中添加了此代码Startup cs app Map signalr map gt var hubConfiguration new
  • LISP - 如何获得嵌套列表的平均长度?

    我有个问题 我需要从此列表中获取平均长度 1 2 3 4 5 6 7 8 9 应该是2 我不知道从哪里开始 我试图得到 1 2 3 4 5 6 7 8 9 from 1 2 3 4 5 6 7 8 9 但我失败了 因为 reduce app
  • Google 是否提供可用于获取手机位置的 API?

    我的智能手机向 Google G 和 Android 设备管理器 报告我的位置 我想从网站 程序中读取该位置来绘制我的位置 我可以使用智能手机上的另一个应用程序进行额外的跟踪 但这往往会消耗相当多的电池 有两个应用程序进行跟踪 由于纬度已被
  • 由于 Windows 之前冻结,Outlook 宏被禁用

    我们公司在每台安装 Outlook 的计算机上都使用 VBA 宏 宏使用证书进行数字签名以确保安全 该证书是通过以下方式生成的自认证程序应用 当我们在 Outlook 中的 VBA 项目 包含宏 上添加数字签名时 我们选择之前生成的证书 并
  • 确定 CALayer 旋转了多少

    我有一个程序 其中 CALayer 必须旋转到特定值 如何确定 CALayer 的当前旋转 我有一个旋转图层的 UIRotationGestureRecognizer void handleGesture UIGestureRecogniz
  • 移动Android View并防止onDraw被一遍又一遍地调用

    我正在延长View 类 我所说的MyView 我添加了一些属性 这些属性基本上说明了在对象上绘制的内容 并处理它 我每隔几毫秒移动一次此类的对象 这效果很好 我在用着this layout left top right bottom 移动
  • Spark 连接速度呈指数级缓慢

    我正在尝试连接两个 Spark RDD 我有一个链接到类别的事务日志 我已将交易 RDD 格式化为以类别 id 作为键 transactions cat take 3 u 707 u 86246 u 205 u 7 u 707 u 1078
  • 为什么我的 d3 力导向图不显示边缘?

    我使用 d3 创建了一个简单的力导向图 http goo gl afHTD http goo gl afHTD 为什么图表的边缘不显示 这是我的整个 HTML 文件 当然 您也可以通过在我的链接页面上查看源代码来查看它并修改它 它基于 d3
  • 使用错误的表别名生成查询的原则

    我正在尝试做一个简单的 gt find 使用原则 规则 2 5 1 查询非常简单 this gt get order repository gt find 10 但这会生成一个复杂的查询 选择 s0 number AS number 0 s
  • SYSTEM_HANDLE_INFORMATION结构

    这个结构从何而来 我知道它是在著名的 ntdll h 中声明的 并且是未记录的 Windows API 的一部分 但不同版本的windows之间不是有差异吗 有没有办法从工作系统中转储这个结构 我在 Windbg 中尝试了 dt SYSTE
  • 如何复制内存

    说我有 unsigned char varA varB varC varA malloc 64 varB malloc 32 varC malloc 32 我怎样才能把first将 32 字节的 varA 放入 varB 中last32字节
  • 编写带有垂直标题的 HTML 表格的最常见方法? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 您编写具有垂直标题的 HTML 表格的首选方式是什么 通过垂直标题我的意思是表格有标题 th 标签位于左侧 通常 Header 1数据数据数据
  • 最大连续数

    我正在练习两个指针技术来解决最大连续数 LeetCode https leetcode com problems max consecutive ones 给定一个二进制数组 找出该数组中连续 1 的最大数量 示例1 Input 1 1 0
  • Html-Webpack-Plugin 模板:模块构建失败:SyntaxError:意外的标记

    当我尝试使用 index ejs 模板文件使用 html webpack plugin 进行构建时 会引发以下错误 即使我尝试加载为 html 文件或安装 ejs loader 仍然失败 我不确定 ejs loader 是否与 html w