Почему в `./node_modules/googleapis` я вижу папку `build/src` вместо папки `src`

У меня есть этот новый проект Ember, и я установил SDK узла Google через npm install googleapis --save-dev. Затем я установил ember-cli-es6-transform в надежде импортировать модули es6 из клиента узла Google API.

Однако я заметил, что в ./node_modules/googleapis есть папка build/src вместо папки src. В Репозиторий Github это просто папка 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"
  },
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
312
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

npm не требует, чтобы репозиторий размещал свой основной файл в каком-либо конкретном месте или называл его index.js. Рекомендуется просмотреть файл package.json репозитория и использовать путь и файл, указанные в ключе «основной».

Вы можете увидеть это на https://github.com/googleapis/google-api-nodejs-client/blob/cb9326b902d6c203c498a2e269f256bcc3b23c2d/package.json#L42

googleapis выбирает сборку своего исходного кода перед размещением его в npm, чтобы нам было проще его использовать, отсюда и каталог build/src.

Дополнительные сведения о «основном» ключе в package.json см. в статье 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' }
  ]
});

Когда вы говорите, что он «строит» свой исходный код, означает ли это, что пакет npm на самом деле уже написан на es5? Я пытался использовать преобразование es6, и оно все равно дает мне Uncaught Error: Could not find module 'googleapis' imported from ...

Sticky 12.07.2019 02:38

Нет, /src на TypeScript, /build/src на ES6. Однако похоже, что build/src/index.js не имеет экспорта по умолчанию.

Gaurav 12.07.2019 21:45

Другие вопросы по теме