Node/Webpack 4 - 如何使用根域

Node/Webpack 4 - how to use the root domain

我需要在通过 javascript:

注入 html 的视图中使用页面的根域
<meta property="og:url" name="twitter:url" itemprop="url" content="<%- root_domain %><%- local_path %>">

问题是,今天我有点像 "hard-coded" 那样做,因为我将它设置为始终等于 https://www.example.com 但在我们的 Netlify CI 中,根域每次都会更改子域构建,例如 deploy-preview-118--xyz-434545.netlify.com 在一个构建上,然后是 deploy-preview-119--xyz-434545.netlify.com,依此类推...

所以我不想将 root_domain 硬编码设置为 https:://www.example.com.

在具有 webpack 根域自我意识的节点应用程序中?有没有一种方法,如果我使用总是给当前的根域?来自 Rails 生态系统,我们有 root_path 方法,它始终等于根域(此处为 example.comdeploy-preview-118--xyz-434545.netlify.comdeploy-preview-119--xyz-434545.netlify.com... ).

不确定它在这个问题上是否起作用,但我们使用 https://github.com/markdalgleish/static-site-generator-webpack-plugin 插件,所以我们有一个 locals.path 方法,但它为我们提供了根域之后的所有内容,而我们想要的是根域名。

基于我们上面的讨论。

查看 Netlify 的文档后,他们提供了几个内置的环境变量,其中包括 URLDEPLOY_URLDEPLOY_PRIME_URL

参考:netlify-build-environment-variables

您应该能够在构建中使用这些来设置 <%- root_domain %> 变量。

可以使用 process.envnode.js 中访问环境变量。 因此,在您的 webpack 配置中,会将 root url 传递给静态站点生成器。

plugins: [
    new StaticSiteGeneratorPlugin({
      locals: {
        root_domain: process.env.DEPLOY_PRIME_URL || 'https://www.example.com'
      }
    })
]

其中 https://www.example.com 将用于本地开发或在没有环境变量的情况下。