我怎样才能移动" index.html"什么时候使用webpack?

时间:2017-02-28 02:54:29

标签: javascript html node.js webpack-dev-server

一般情况下," index.html"使用webpack加载?

我想移动" index.html"建立/.

我在使用webpack从npm开始的数据流方面遇到了麻烦。

在package.json中,"开始"定义为:

"node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js".

但是,我无法从" webpack-dev-server.js"中找到它的位置。

我找到了关于" index.html"的两个描述。如下所示:

     .boolean("history-api-fallback").describe("history-api-fallback", "Fallback to /index.html for Single Page Applications.")

    console.log("404s will fallback to %s", options.historyApiFallback.index || "/index.html");

当我尝试移动" index.html"在build /中,浏览器返回"无法获取错误"。

"的index.html"和webpack.config.js现在在同一个文件夹中。

    ./  index.html  package.json  src/    test/
    ../  build/  node_modules/  public/   style/             
    webpack.config.js

2 个答案:

答案 0 :(得分:0)

一种方法是更新脚本(在package.json中),以便将"scripts": { "start": "node node_modules/.bin/webpack-dev-server --content-base src", "build": "node node_modules/.bin/webpack && cp src/index.html build/index.html" } 复制到目标文件夹:

npm run build

src/index.html现在也应将build/index.html复制到{{1}}。

答案 1 :(得分:0)

我不是webpack专家,但我遇到了同样的问题,并且能够使用插件来解决它:html-webpack-plugin

首先安装它:npm install html-webpack-plugin --save-dev

然后修改您的webpack.config.js

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

module.exports = {
    //Your config here (entry, module, resolve, etc.)
    devServer: {
        contentBase: './build' //Or any other path you build into
    },
    plugins: [
        //other plugins if any
        new HtmlWebpackPlugin({
            template: './index.template.html', //your template file
            filename: 'index.html',
            inject: 'body'
        })
    ]
};

这会将您的index.template.html复制到./build/index.html并从那里提供文件 它还会将所有资产注入<body>标记的底部 您可以进一步降低此设置的成本,以满足您的需求,只需refer to the plugin docs