Webpack 和 GoogleApis 端点路径问题

Posted

技术标签:

【中文标题】Webpack 和 GoogleApis 端点路径问题【英文标题】:Webpack and GoogleApis endpoint path issues 【发布时间】:2017-10-29 20:57:19 【问题描述】:

我正在尝试在 webpack 项目中使用 googleapis。每当我调用

static getApi = () => 
    google.sheets('v4');

我得到以下Error: Unable to load endpoint ../apis/sheets("v4"): Cannot find module "." 源自googleapis/lib/googleapis.js的第50行,基本上就是var Endpoint = require(endpointPath);

我尝试查看 endpointPath,但它恰好是正确的:node_modules/googleapis/apis/sheets/v4

我的 webpack.config.js 如下所示:

module.exports = 
   entry: ['babel-polyfill','./src/index.js'],
   target: 'async-node', // Improved performance in node version 6+
   node: 
     __dirname: true
   ,
   output: 
     filename: './dist/bundle.js',
     libraryTarget: 'commonjs2'
   ,
   module: 
     rules: [
      
    test: /\.(graphql|gql)$/,
    exclude: /node_modules/,
    loader: 'graphql-tag/loader'
  ,
  
    test: /\.js$/,
    exclude: /(node_modules)/,
    use: 
      loader: 'babel-loader',
        options: 
          presets: ['env'],
          plugins: [require('babel-plugin-transform-class-properties')]
        
      
    
  ]
  ,
  devtool: 'source-map'

删除

node: 
  __dirname: true
,

导致从上述 googleapis.js 的第 62 行获得 ENOENT: no such file or directory, scandir '/apis'

【问题讨论】:

您找到解决此问题的方法了吗? 【参考方案1】:

根据github issue comment,应将 googleapis 节点客户端排除在任何服务器端捆绑机制之外。

googleapis (google-api-nodejs-client) 将在 Node.js 中工作。排除 来自任何服务器端捆绑包的 googleapis(只需让 Node 的模块系统 为您加载)是最好的选择。

【讨论】:

以上是关于Webpack 和 GoogleApis 端点路径问题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 React、Redux 和 Webpack 实现 Google API

React + Webpack:在哪里配置 REST 端点

Google 公钥端点返回啥?

webpack的路径问题到底是怎么回事

webpack的路径问题到底是怎么回事

Webpack 多次导入相同的样式