首页 文章

如何使用configureWebpack使组件可以使用自定义变量?

提问于
浏览
0

我们使用的是原始的Vuepress(0.x分支),我们希望使用Vuepress配置文件的configureWebpack方法导出一些自定义变量 .

此代码打破了构建,因为Webpack自2.0以来不允许自定义属性:

configureWebpack: (config) => {
  config.env = process.env
}

错误:

WebpackOptionsValidationError:无效的配置对象 . Webpack已使用与API架构不匹配的配置对象进行初始化 . - 配置具有未知属性'env' .

我还查看了defining plugins的Webpack文档,但是问题是 configureWebpack 方法不允许't actually expose the webpack instance Vuepress uses - it directly attempts to mutate the webpack options (which isn') - 但是因为webpack实例不是像webpack想要的那样定义一个插件 .

有没有人知道暴露可比的环境变量的正确方法,我们可以使用Vuepress 0.x在我们的Vue组件中使用它们?

1 回答

  • 0

    好吧......它与VuePress的构建管道争论并跳过Webpack fire hoops,但是由于VuePress使用Webpack,我们可以简单地在我们的配置文件中需要它(我假设需要公开VuePress的Webpack实例的方法,是不正确的) .

    如果使用dotenv,您可以使组件可以使用自定义环境变量:

    // .vuepress/config.js
    require('dotenv').config()
    const webpack = require('webpack')
    
    module.exports = {
      configureWebpack: (config) => {
        return { plugins: [
          new webpack.EnvironmentPlugin({ ...process.env })
        ]}
      }
    }
    

    注意:这将从您的env文件中获取 everything 并使其在所有组件中可用,因为 生产环境 版本仅使用您需要的密钥 .

相关问题