为什么在 `./node_modules/googleapis` 中我看到一个 `build/src` 文件夹而不是 `src` 文件夹

How come in `./node_modules/googleapis` I see a `build/src` folder instead of a `src` folder

我有这个新的 Ember 项目,我通过 npm install googleapis --save-dev 安装了 google node sdk。然后我安装了 ember-cli-es6-transform,希望从 google api 节点客户端导入 es6 模块。

但是我注意到 ./node_modules/googleapis 中有一个 build/src 文件夹而不是 src 文件夹。在 Github repo 中,它只是一个 src 文件夹。为什么是这样?这导致我的导入在使用 ember-cli-es6-transform.

时不稳定

这就是我的 devDependencies 中的所有内容:

  "devDependencies": {
    "broccoli-asset-rev": "^2.4.5",
    "ember-ajax": "^3.0.0",
    "ember-cli": "~3.1.4",
    "ember-cli-app-version": "^3.0.0",
    "ember-cli-babel": "^6.6.0",
    "ember-cli-dependency-checker": "^2.0.0",
    "ember-cli-es6-transform": "^1.0.0",
    "ember-cli-eslint": "^4.2.1",
    "ember-cli-htmlbars": "^2.0.1",
    "ember-cli-htmlbars-inline-precompile": "^1.0.0",
    "ember-cli-inject-live-reload": "^1.4.1",
    "ember-cli-qunit": "^4.1.1",
    "ember-cli-sass": "^10.0.1",
    "ember-cli-shims": "^1.2.0",
    "ember-cli-sri": "^2.1.0",
    "ember-cli-uglify": "^2.0.0",
    "ember-data": "~3.1.0",
    "ember-export-application-global": "^2.0.0",
    "ember-load-initializers": "^1.0.0",
    "ember-maybe-import-regenerator": "^0.1.6",
    "ember-resolver": "^4.0.0",
    "ember-source": "~3.1.0",
    "ember-welcome-page": "^3.0.0",
    "eslint-plugin-ember": "^5.0.0",
    "googleapis": "^40.0.1",
    "loader.js": "^4.2.3",
    "sass": "^1.22.2"
  },

npm 不要求存储库将其主文件放在任何特定位置或将其命名为 index.js。建议您查看 repo 的 package.json 并使用 "main" 键下列出的路径和文件。

你可以在https://github.com/googleapis/google-api-nodejs-client/blob/cb9326b902d6c203c498a2e269f256bcc3b23c2d/package.json#L42

看到它

googleapis 选择在将其放在 npm 上之前构建其源代码,以便于我们使用,因此 build/src 目录。

有关 package.json 中 "main" 键的详细信息,请参阅 https://docs.npmjs.com/files/package.json#main

请注意 ember-cli-es6-transform 允许您指定任何路径,因此只需将正确的路径作为参数输入即可。

app.import('node_modules/googleapis/build/src/index.js', {
  using: [
    { transformation: 'es6', as: 'googleapis' }
  ]
});