2017-10-15 13 views
1

Je suis en train de déployer des fonctions créées avec bucklescript à google functions mais le Deploy ne fonctionnera pas sans cette erreur:Comment travailler avec bucklescript nécessite et les fonctions Google

Did you list all required modules in the package.json dependencies? Detailed stack trace: Error: Cannot find module 'bs-platform/lib/js/js_json.js'

J'utilise l'utilitaire gcloud beta functions deploy. Mon code utilise le module Js.Json, qui produit var Js_json = require("bs-platform/lib/js/js_json.js"); dans le code js sorti. Mon package.json contient le package bs-platform.

Existe-t-il un moyen de configurer bucklescript ou l'utilitaire gcloud pour rendre mon code acceptable?

+0

Je ne connais pas 'gcloud', mais vous devrez peut-être utiliser un bundler tel que webpack ou rollup pour le regrouper dans un seul fichier. L'appel 'require' est standardjs, rien de spécifique à bucklescript. – glennsl

+0

Vous pouvez également configurer 'bsb' pour émettre es6 ou amdjs au lieu des modules commonjs, si cela fonctionne mieux. – glennsl

+0

@glennsl à la fin, j'ai utilisé rollup pour regrouper des deps et il a fait l'affaire. Si vous le souhaitez, vous pouvez donner une réponse et je serai en mesure de l'approuver. – Parasithe

Répondre

1

Les modèles require de BuckleScript sont simplement des CommonJS require s, et peuvent être regroupés en un seul fichier en utilisant un bundler comme webpack. Vous pouvez également configurer bsb pour émettre des modules ES6 (voir la propriété package-specs du bsconfig.json schema) et les regrouper à l'aide du cumul.