Javascript 从网页包别名获取扩展路径

Javascript 从网页包别名获取扩展路径,javascript,reactjs,webpack,Javascript,Reactjs,Webpack,是否有一种从webpack配置获取webpack别名的好方法: config.resolve.alias = { NormalizeNodePath: (__dirname, 'node_modules/normalize.css/normalize.css'), BluePrintIconsNodePath: (__dirname, 'node_modules/@blueprintjs/icons/lib/css/blueprint-icons.css'), BluePrintCo

是否有一种从webpack配置获取webpack别名的好方法:

config.resolve.alias = {
  NormalizeNodePath: (__dirname, 'node_modules/normalize.css/normalize.css'),
  BluePrintIconsNodePath: (__dirname, 'node_modules/@blueprintjs/icons/lib/css/blueprint-icons.css'),
  BluePrintCoreNodePath: (__dirname, 'node_modules/@blueprintjs/core/lib/css/blueprint.css')
}
并在javascript中将其作为字符串公开?

您可以使用将全局变量注入到代码中

示例

const alias = {
  NormalizeNodePath: (__dirname, "node_modules/normalize.css/normalize.css"),
  BluePrintIconsNodePath: (__dirname, "node_modules/@blueprintjs/icons/lib/css/blueprint-icons.css"),
  BluePrintCoreNodePath: (__dirname, "node_modules/@blueprintjs/core/lib/css/blueprint.css")
};

const config = {
  resolve: {
    alias
  },
  plugins: [new webpack.DefinePlugin(alias)]
};

如果我正确理解这个问题,有几种方法可以实现这一点

  • 为这些字符串定义一个变量,然后将它们导入代码和网页包配置中
  • 在代码中使用并将其作为常量公开,在绑定期间将用文本字符串替换

  • 因此,您想使用
    连接(uu dirname,“…”)
    字符串,将其用作别名并在您的代码库中?我只是想找到一些方法来保存字符串,并能够在代码库中使用它,如果有更好的方法在我想知道的网页中这样做的话。
    // paths.js
    const NormalizeNodePath = join(__dirname, 'node_modules/normalize.css/normalize.css')
    
    module.exports = {
      NormalizeNodePath,
    }
    
    // webpack.config.js
    const { NormalizeNodePath } = require('./paths')
    
    // use it in alias config
    
    // src/whatever.js
    const { NormalizeNodePath } = require('../paths')
    // use in your code
    
    const NormalizeNodePath = join(__dirname, 'node_modules/normalize.css/normalize.css')
    
    module.exports = {
      // other config...
    
      resolve: {
        alias: {
          NormalizeNodePath
        },
      },
      plugins: [
        new webpack.DefinePlugin({
          NormalizeNodePath,
        })
      ]
    }
    
    // Use the variable name `NormalizeNodePath` in your code