如何在webpack开发服务器中分离index.html和资产?

如何在webpack开发服务器中分离index.html和资产?,webpack,webpack-dev-server,Webpack,Webpack Dev Server,我希望具有以下生成文件夹结构: /build/index.html /build/static/bundlename.js /build/static/bundlename.css /构建/静态/img/* /构建/静态/字体/* 我怎样才能做到这一点?我已经通过在bundlename中添加/静态前缀来解决这个问题,用于webpack正常构建本身。但是,当我在webpack dev server中运行此配置时,它不会按/static/path来管理文件 我对字体使用文件加载器和url加载器,

我希望具有以下生成文件夹结构:

  • /build/index.html
  • /build/static/bundlename.js
  • /build/static/bundlename.css
  • /构建/静态/img/*
  • /构建/静态/字体/*
我怎样才能做到这一点?我已经通过在bundlename中添加/静态前缀来解决这个问题,用于webpack正常构建本身。但是,当我在webpack dev server中运行此配置时,它不会按/static/path来管理文件

我对字体使用文件加载器和url加载器,如何更改它们的路径?它们出现在/build root中,我希望它们出现在/static/font文件夹中

我使用html webpack插件生成index.html和附加样式链接(不知道webpack为什么要默认从js添加它们,这很疯狂,正如我看到的选项,但不是默认方式)

我狼吞虎咽地运行webpack

你可以在这里看到我的配置。


提前感谢。

您可以指定
输出路径。

output: {
    path: "build/static",
    publicPath: "/static/"
}

并在html网页包插件中将路径从
index.html
更改为
。/index.html
,您可以指定
output.path

output: {
    path: "build/static",
    publicPath: "/static/"
}

并在html网页包插件中将路径从
index.html
更改为
./index.html
output.publicPath
&
output.filename
()
output.path
选项确定文件在磁盘上的写入位置

在您的情况下,您需要
path:path.resolve(\uu dirname,'build')

这将把
HtmlWebpackPlugin
中的
index.html
放入您的
build
目录中

output.filename

指定磁盘上每个输出文件的名称。您不能指定 这里有一条绝对的道路!output.path选项确定位置 在磁盘上写入文件。文件名仅用于命名 单个文件

在您的情况下,您需要
文件名:'./static/bundlename.js'

这将把捆绑的JS放入静态目录

要将CSS放入您的静态目录,您需要。一旦你开始这样做,你就会想在你的网页包插件中加入一些东西,比如
newextractTextPlugin('static/bundlename.css')

对于图像和字体,您可以在加载程序中指定如下内容:

{
    test: /\.(ttf|otf|eot|woff|woff2)$/
    include: [
      path.resolve(__dirname, 'font location here')
    ],
    loader: 'url',
    query: {
      limit: 10000,
      name: 'static/fonts/[name].[ext]'
    }
  },
  {
    test: /\.svg$/,
    include: [
      path.resolve(__dirname, 'image location here')
    ],
    loader: 'file',
    query: {
      limit: 10000,
      minetype: 'image/svg+xml',
      name: 'static/img/[name].[ext]'
    }
  }
output.publicPath
指定在浏览器中引用时输出文件的公共URL地址。您可能想试试

publicPath:http://localhost:8000/
看看这个

你有
output.path
output.publicPath
&
output.filename
()
output.path
选项确定文件在磁盘上的写入位置

在您的情况下,您需要
path:path.resolve(\uu dirname,'build')

这将把
HtmlWebpackPlugin
中的
index.html
放入您的
build
目录中

output.filename

指定磁盘上每个输出文件的名称。您不能指定 这里有一条绝对的道路!output.path选项确定位置 在磁盘上写入文件。文件名仅用于命名 单个文件

在您的情况下,您需要
文件名:'./static/bundlename.js'

这将把捆绑的JS放入静态目录

要将CSS放入您的静态目录,您需要。一旦你开始这样做,你就会想在你的网页包插件中加入一些东西,比如
newextractTextPlugin('static/bundlename.css')

对于图像和字体,您可以在加载程序中指定如下内容:

{
    test: /\.(ttf|otf|eot|woff|woff2)$/
    include: [
      path.resolve(__dirname, 'font location here')
    ],
    loader: 'url',
    query: {
      limit: 10000,
      name: 'static/fonts/[name].[ext]'
    }
  },
  {
    test: /\.svg$/,
    include: [
      path.resolve(__dirname, 'image location here')
    ],
    loader: 'file',
    query: {
      limit: 10000,
      minetype: 'image/svg+xml',
      name: 'static/img/[name].[ext]'
    }
  }
output.publicPath
指定在浏览器中引用时输出文件的公共URL地址。您可能想试试

publicPath:http://localhost:8000/
看看这个

它在webpack构建中工作,但在我使用webpack dev服务器运行它时不工作。无论是打开/或/静态网页包,dev server都不会提供任何信息。我添加了publicPath,将index.html路径改为../,将publicPath+historyapi回退添加到webpack开发服务器。问题是我不能让它与devserver而不是webpack简单构建一起工作。你有没有在webpack dev server上亲自尝试过?如果是,请提供您的设置。这个主意很酷,但对我不起作用。可能出了什么问题。对不起,我没有使用webpack dev server,不管怎样,我试图让它正常工作,但运气不好:(它在webpack构建中工作,但在我使用webpack dev server运行它时不工作。打开/或/静态webpack dev server都不会产生任何效果。我添加了publicPath,将index.html path改为../,将publicPath+HistoryApi回退到webpack dev server。问题是我无法使它与devserver而不是webpack simple buil一起工作。)d、 您是否亲自在webpack dev server上尝试过此操作?如果是,请提供您的设置。这主意很酷,但对我来说不起作用。可能是做错了什么。对不起,我没有使用webpack dev server,无论如何,我尝试过使其工作,但运气不佳:(