Ошибка: имя модуля "@ google-cloud / vision" еще не загружено для контекста: _. Используйте require ([]) - PullRequest
0 голосов
/ 19 февраля 2020

Я получаю эту ошибку Module name "@google-cloud/vision" has not been loaded yet for context: _. Use require([]), когда я запускаю свой проект, я включил require. js в моем проекте, а также тег script в моем html файле <script data-main = "./app.js" src = "./libs/require.js"></script>, я просмотрел много статей по require . js, но я не мог понять, что на самом деле используется и как я могу устранить эту ошибку.

Я также прошел через эту тему на StackOverFlow, но не смог понять Dynami c требуется в Require JS, получая ошибку «Имя модуля еще не загружено для контекста»?

Вот мой код

///////////////////////////////////////////////////////////////
//UPLOAD IMAGE to cloud bucket
function showResults(){
const bucketName = //name-of-bucket;
 const filename = './img2.jpg';

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

async function uploadFile() {
  // Uploads a local file to the bucket
  await storage.bucket(bucketName).upload(filename, {
    // Support for HTTP requests made with `Accept-Encoding: gzip`
    gzip: true,
    // By setting the option `destination`, you can change the name of the
    // object you are uploading to a bucket.
    metadata: {
      // Enable long-lived HTTP caching headers
      // Use only if the contents of the file will never change
      // (If the contents will change, use cacheControl: 'no-cache')
      cacheControl: 'public, max-age=31536000',
    },
  });

  console.log(`${filename} uploaded to ${bucketName}.`);
}

uploadFile().catch(console.error);
}
///////////////////////////////////////////////////////////////////

1 Ответ

0 голосов
/ 24 февраля 2020

Ваш код не совместим с Require JS, который использует AMD - определение асинхронного модуля.

Формат AMD выглядит следующим образом:

define(['@google-cloud/storage'], (storage) {
  // body of your module here
});

Вопрос в том, является ли '@google-cloud/storage' Совместимость с AMD.

Самое простое решение - использовать более современные инструменты, такие как веб-пакет, или просто использовать собственные модули ES6, если вы поддерживаете Chrome только браузер

...