i am getting error while importing @google-cloud/storage

Viewed 1123

I am getting error just after importing @google-cloud/storage

Environment details

  • OS: macOS Big Sur
  • Node.js version: v12.18.4
  • npm version:6.14.6
  • @google-cloud/storage version:^ 5.6.0
  • framework nuxt js version : Nuxt.js @ v2.14.7

Steps to reproduce

  • install @google-cloud/storage

    yarn add @google-cloud/storageor npm install @google-cloud/storage --save

import it

const {Storage} = require('@google-cloud/storage');
const storage = new Storage({
keyFilename : path.join(__dirname, './file.json'),
projectId: "xxx-xxx-xxx"
});

just after that i got this error

ERROR in ./node_modules/google-auth-library/build/src/auth/googleauth.js Module not found: Error: Can't resolve 'child_process' in '/Users/xxx/xxxx/node_modules/google-auth-library/build/src/auth' ERROR in ./node_modules/@google-cloud/storage/build/src/file.js Module not found: Error: Can't resolve 'fs' in '/Users/xxx/xxxx/node_modules/@google-cloud/storage/build/src' ERROR in ./node_modules/@google-cloud/storage/build/src/bucket.js Module not found: Error: Can't resolve 'fs' in '/Users/xxx/xxxx/node_modules/@google-cloud/storage/build/src' ERROR in ./node_modules/configstore/node_modules/make-dir/index.js Module not found: Error: Can't resolve 'fs' in '/Users/xxx/xxxx/node_modules/configstore/node_modules/make-dir' ERROR in ./node_modules/google-auth-library/build/src/auth/googleauth.js Module not found: Error: Can't resolve 'fs' in '/Users/xxx/xxxx/node_modules/google-auth-library/build/src/auth' ERROR in ./node_modules/google-p12-pem/build/src/index.js Module not found: Error: Can't resolve 'fs' in '/Users/xxx/xxxx/node_modules/google-p12-pem/build/src' ERROR in ./node_modules/graceful-fs/graceful-fs.js Module not found: Error: Can't resolve 'fs' in '/Users/xxx/xxxx/node_modules/graceful-fs' ERROR in ./node_modules/gtoken/build/src/index.js Module not found: Error: Can't resolve 'fs' in '/Users/xxx/xxxx/node_modules/gtoken/build/src' ERROR in ./node_modules/write-file-atomic/index.js Module not found: Error: Can't resolve 'fs' in '/Users/xxx/xxxx/node_modules/write-file-atomic' ERROR in ./node_modules/http-proxy-agent/dist/agent.js Module not found: Error: Can't resolve 'net' in '/Users/xxx/xxxx/node_modules/http-proxy-agent/dist' ERROR in ./node_modules/https-proxy-agent/dist/agent.js Module not found: Error: Can't resolve 'net' in '/Users/xxx/xxxx/node_modules/https-proxy-agent/dist' ERROR in ./node_modules/http-proxy-agent/dist/agent.js Module not found: Error: Can't resolve 'tls' in '/Users/xxx/xxxx/node_modules/http-proxy-agent/dist' ERROR in ./node_modules/https-proxy-agent/dist/agent.js Module not found: Error: Can't resolve 'tls' in '/Users/xxx/xxxx/node_modules/https-proxy-agent/dist'

i tried to override webpack config by adding

 config.node : {
        fs: 'empty', 
        net: 'empty', 
        tls: 'empty', 
        child_process: 'empty', 
        __filename: true, 
        __dirname: true
     }

That’s the only solution i found but i still getting error

TypeError: The "original" argument must be of type Function
    at promisify (util.js?3022:602)
    at eval (index.js?5051:7)
    at Object../node_modules/@google-cloud/storage/node_modules/get-stream/index.js (index.js:275)
    at __webpack_require__ (runtime.js:854)
    at fn (runtime.js:151)
    at Object.eval (file.js?5fe9:20)
    at eval (file.js:3042)
    at Object../node_modules/@google-cloud/storage/build/src/file.js (index.js:167)
    at __webpack_require__ (runtime.js:854)
    at fn (runtime.js:151)
1 Answers

the problem you are using @google-cloud/storage on client side code, this lib is supposed to be used on server side only.

remember Nuxt is a SSR(server side render) even if it render on server a lot of the code will be on client side too. You can try to use this on serverside components like The serverMiddleware Property

to run storage on client side try to use npm firebase storage

Related