为dev / staging / production设置不同的<base />的正确方法是什么

时间:2016-02-04 15:25:32

标签: webpack

  Dim pt As PivotTable
  Dim ws As Worksheet
  Dim names As Variant
  Dim found As Boolean

  Set ws = ActiveWorkbook.ActiveSheet
  names = Split("MSP,MSP30,FSP,FSP30,MRP,MRP30,FRP,FRP30,MPP,MPP30,FPP,FPP30,MCP,MCP30,FCP,FCP30", ",")

  For Each pt In ws.PivotTables
    found = False

    For i = 1 To UBound(names)
      If pt.Name = names(i) Then
        found = True
      End If
    Next i

    If found Then
      pt.PivotFields("count").ClearAllFilters
      pt.PivotFields("scrap code").ClearAllFilters
      pt.PivotFields("count").ShowAllItems = True

      pt.PivotFields("count").PivotItems("0").Visible = False
    End If

  Next pt
开发和生产的

是不同的(对于生产它的子文件夹)。使用webpack构建不同基础的好方法是什么?

6 个答案:

答案 0 :(得分:17)

我到目前为止发现的最好的是将此属性放在config(HtmlWebpackPlugin选项)中:

new HtmlWebpackPlugin({
  ...
  baseUrl: process.env.NODE_ENV == 'development'?'/':'/app/'
})

然后在index.html中输出:

<base href="<%= htmlWebpackPlugin.options.baseUrl %>" />

答案 1 :(得分:5)

如果您将template选项设置为HTML文件,则插件的2.x版将不会执行任何替换。

在这种情况下,您需要修改@ stever的答案,如下所示:

new HtmlWebpackPlugin({
  ...
  template: './src/index.ejs',
  baseUrl: process.env.NODE_ENV == 'development'?'/':'/app/'
})

并将您的index.html文件重命名为index.ejs

答案 2 :(得分:1)

现在很容易做到。

在项目中安装base-href-webpack-plugin:

npm install --save-dev base-href-webpack-plugin

并在webpack文件中导入此代码:

// Import package
const { BaseHrefWebpackPlugin } = require('base-href-webpack-plugin'); // Or `import 'base-href-webpack-plugin';` if using typescript

// Add to plugins
plugins: [
  new BaseHrefWebpackPlugin({ baseHref: '/' })
]

参考:https://github.com/dzonatan/base-href-webpack-plugin

答案 3 :(得分:1)

如果您使用的是Angular CLI 6,则可以在{{1}内指定baseHref并将url部署为生产配置(项目&gt; xxx&gt;架构&gt;构建&gt;配置&gt;生产)的一部分}}

答案 4 :(得分:0)

如果您使用的是webpack,则必须将output.publicPath设置为相同的值。 见HtmlWebpackPlugin injects relative path files which breaks when loading non-root website paths

答案 5 :(得分:0)

Webpack 4 中,我已经尝试在 HtmlWebpackPlugin 中使用baseUrl,但是从未在html中对其进行解析。因此,您需要一个名为 BaseHredWebpackPlugin 的新插件以及HtmlWebpackPlugin

Webpack.config

 new HtmlWebpackPlugin(), //this will create default template
        new HtmlWebpackPlugin({
            title: 'MyApp' //replace title

        }),
        new BaseHrefWebpackPlugin({
            baseHref: process.env.NODE_ENV == 'development' ? '/' : '/MyApp/'
        })

HTML

    <base href="<%= htmlWebpackPlugin.options.baseUrl %>">
    <title><%= htmlWebpackPlugin.options.title %></title>