Closed abhi18av closed 5 years ago
First, I could get the ocsigen-start.1.3.0 in one command line (and the installation with some tweaks from 1.0.0 was fine as well in 3 steps). Thanks to @jrochel and his team for that.
@abhi18av : I got the same problem.
It appears that the file _client/os_prologue.js
is not there as expected. So the client side compilation fails there.
I've not found yet where this file is produced. Maybe it's about some missing js dependencies.
@jrochel : what is your advice? Thanks
Your error message:
js_of_eliom -w +A-4-7-9-37-38-39-41-42-44-45-48 -jsopt +base/runtime.js -jsopt --dynlink -o _client/os_prologue.js -g -package lwt_log -package lwt_ppx -package js_of_ocaml-ppx -package js_of_ocaml-ppx.deriving -package ppx_deriving.std -package ocsigen-start.client -package base \
-jsopt --noinline -jsopt --disable=shortvar -jsopt --pretty
File "_none_", line 1:
Error: Required module `Condition' is unavailable
make: *** [_client/os_prologue.js] Error 2
My error message:
$ make test.byte
js_of_eliom -w +A-4-7-9-37-38-39-41-42-44-45-48 -jsopt +base/runtime.js -jsopt --dynlink -o _client/os_prologue.js -g -package lwt_log -package lwt_ppx -package js_of_ocaml-ppx -package js_of_ocaml-ppx.deriving -package ppx_deriving.std -package ocsigen-start.client -package base \
-jsopt --noinline -jsopt --disable=shortvar -jsopt --pretty
File "_none_", line 1:
Error: Required module `Condition' is unavailable
Makefile.os:262: recipe for target '_client/os_prologue.js' failed
make: *** [_client/os_prologue.js] Error 2
EDIT I've just upgraded node to 11.6.0 and nodejs to 11.6.0. and got the same error message.
There is indeed a bug in the template.
You need to remove lwt_log
from CLIENT_PACKAGES
in Makefile.options
(it does not make sense to use this package client-side).
And in myapp.eliom
you need to replace Lwt_log.Debug
by either Lwt_log_core.Debug
or Lwt_log_js.Debug
.
This fixed immediately the problem. Thanks.
Is the knowledge about all these packages used by ocsigen-start enough to understand and fix that kind of error?
I understand that all the js code is generated with js_of_ocaml (no external js libraries is used). So can you explain how is used all the node and nodejs stuff that is manipulated by npm during the build?
@abhi18av : is it ok for you?
Module Condition
is part of the OCaml thread library. As there is no threads in JavaScript, it does not make sense to use it client-side. The command that builds _client/os_prologue.js
fails. This file includes all the package used client-side. So, that means that one of the packages in CLIENT_PACKAGES
depends on Condition
. I just had to check which.
The nodejs tool postcss
is used to process CSS files. It is automatically installed using npm
.
Thanks everyone for working on this issue here!
I'm testing this out now.
Nope, when I made the necessary changes mentioned in the https://github.com/ocsigen/ocsigen-start/issues/528#issuecomment-451963868 and after running make test.byte
, I came across the following error
==== The website is available at http://localhost:8080 ====
ocsigenserver "-v" -c local/etc/myproject/myproject-test.conf
ocsigenserver: ocsigen:config: While parsing config file, tag <host>: No defaulthostname, assuming it is "abhinavs-macbook-pro.local"
ocsigenserver: ocsigen:main: Fatal - Error in configuration file: Error while parsing configuration file: Eliom: while loading /Users/eklavya/.opam/default/lib/safepass/safepass.cma: error loading shared library: dllsafepass_stubs.so: dlopen(dllsafepass_stubs.so, 10): image not found
make: *** [test.byte] Error 50
And then there's nothing on http://localhost:8080/
.
Also, could you tell me how to update the installed template itself so that I don't have to make the changes manually always.
An update, the make test.opt
works fine
@abhi18av, a fixed has been merged. So you can reinstall ocsigen-start from github. We should make a new release shortly.
The problem in https://github.com/ocsigen/ocsigen-start/issues/528#issuecomment-453184536 is a different issue. See #511. I don't know how to fix it, though...
And in
myapp.eliom
you need to replaceLwt_log.Debug
by eitherLwt_log_core.Debug
orLwt_log_js.Debug
.
I see one Lwt_log.Debug in https://github.com/ocsigen/ocsigen-start/blob/master/template.distillery/PROJECT_NAME.eliom (line 85) Is it intentional or should it be replaced with Lwt_log_core.Debug or Lwt_log_js.Debug?
Lwt_log_core
can be used both client and server side. Lwt_log
can only be used on the server. The code on line 85 is executed on the server, so it's fine. Lwt_log_js
can only be used on the client.
Hi ocsigen team
I tried running the
eliom
template by the name ofmyapp
and I followed the instructions on the generatedREADME.md
but unfortunately I ran into an error.Upon another attempt with the
test.opt
I get the same message