Webpack:如何将 html 文件复制到构建文件夹中?

Posted

技术标签:

【中文标题】Webpack:如何将 html 文件复制到构建文件夹中?【英文标题】:Webpack: how to copy html files into build folder? 【发布时间】:2020-12-17 14:40:35 【问题描述】:

我正在开发一个使用 Webpack 的 javascript 项目。老实说,我对 Webpack 有点陌生。让我解释一下我的项目的构建系统是如何工作的。当我运行“npm run dev”时,它会将项目根文件夹中的 js、scss 和其他文件夹中的文件复制到项目根文件夹中的 build 文件夹中。项目的根文件夹中有一个 index.html 文件。 index.html 文件被直接复制到 root/build/index.html 文件夹中。现在,我正在尝试在名为 info.html 的项目根文件夹下添加一个新的 HTML 文件。当我运行“npm run dev”时,我希望它将 info.html 文件复制到 build/index.html 文件夹中。我尝试将以下内容放入 webpack.config.dev.js 文件中。

 
    test: /\.html$/i,
    loader: 'html-loader',
  

但是 info.html 文件并没有被复制到构建文件夹中。我该怎么做?

当我使用 CopyWebpackPlugin 时,它抛出了以下错误。

node_modules\copy-webpack-plugin\node_modules\p-limit\index.js:30
                 catch 
                        ^

SyntaxError: Unexpected token 
    at new Script (vm.js:51:7)
    at createScript (vm.js:136:10)
    at Object.runInThisContext (vm.js:197:10)
    at Module._compile (internal/modules/cjs/

【问题讨论】:

您是否尝试过使用CopyWebpackPlugin? 是的,我试过用它。我已经更新了这个问题。请看一下。 尝试删除loader: 'html-loader',后多余的逗号 【参考方案1】:

使用copy-webpack-plugin时不需要file-loaderhtml-loader

在你的 webpack 配置中导入模块:

const CopyPlugin = require('copy-webpack-plugin');

并将其附加到插件部分:

...

plugins: [

    ...

    new CopyPlugin(
        patterns: [
             
                from: path.resolve(__dirname, 'info.html'), 
                to: path.resolve(__dirname, 'build') 
            ,
        ],
    ),

    ...

],

...

【讨论】:

我收到此错误“node_modules\copy-webpack-plugin\node_modules\p-limit\index.js:30 catch ”,然后我运行“npm run dev”。【参考方案2】:

需要升级nodejs,版本号必须大于10.13.0

【讨论】:

以上是关于Webpack:如何将 html 文件复制到构建文件夹中?的主要内容,如果未能解决你的问题,请参考以下文章

Webpack.config 如何将 index.html 复制到 dist 文件夹

如何在 Webpack 构建过程中将 React 应用程序中的 mockServiceWorker.js 文件复制到我的构建文件夹

将文件从构建文件夹(构建后)移动到具有相对路径的不同文件夹 - Webpack

如何使用 webpack 将 html、js 和 css 捆绑在一个 html 文件中? [关闭]

运行Python脚本以在编译目标之后将文件复制到文件夹中

Webpack 复制和订单优先级