Deno compile with --include
Hi, playing around with
deno compile --include following the docs probably doing something wrong but not sure what. Help appreciated, using v2.5.3. I have the following
names.tsv
cli.ts
After compiling the file with deno compile cli.ts --include names.tsv and running the resulting binary and get this error:
4 Replies
Found the problem, seems like command line parsing is a bit buggy here and the order does alter the result
-
deno compile cli.ts --include names.tsv. Generates the executable without warnings or errors but silently ignores the --include names.tsv parameter. This should work as expected or throw an error when parsing arguments.
- deno compile --include names.tsv cli.ts. Generates the executable and actually includes the asset into the binary.That's the intended behavior. When you pass the arguments after
cli.ts, the arguments are passed to cli.ts, not to deno compile. It's the same as the difference between deno run --allow-all cli.ts and deno run cli.ts --allow-allThanks for the clarification. It's working as intended then. It's weird though to pass parameters to something I'm compiling but I suppose there might be a use case for that.
I think nowadays there's a native API that allows us to check from code whether the app is running as a script or as binary, but in the past we didn't have that. So one example usage would be to do something like
deno compile cli.ts --compiled, and then inside the code we would do something like if (Deno.args.get('compiled')) because we wanted the binary version to behave differently