carragom
carragom11h ago

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
John Doe
Jane Smith
Alice Jones
John Doe
Jane Smith
Alice Jones
cli.ts
if (import.meta.main) {
const names = Deno.readTextFileSync(import.meta.dirname + "/names.tsv");
console.debug(names);
}
if (import.meta.main) {
const names = Deno.readTextFileSync(import.meta.dirname + "/names.tsv");
console.debug(names);
}
After compiling the file with deno compile cli.ts --include names.tsv and running the resulting binary and get this error:
error: Uncaught (in promise) NotFound: path not found: readfile '/tmp/deno-compile-deno-embed/names.tsv'
const names = Deno.readTextFileSync(import.meta.dirname + "/names.tsv");
^
at Object.readTextFileSync (ext:deno_fs/30_fs.js:771:10)
at file:///tmp/deno-compile-deno-embed/cli.ts:2:22
error: Uncaught (in promise) NotFound: path not found: readfile '/tmp/deno-compile-deno-embed/names.tsv'
const names = Deno.readTextFileSync(import.meta.dirname + "/names.tsv");
^
at Object.readTextFileSync (ext:deno_fs/30_fs.js:771:10)
at file:///tmp/deno-compile-deno-embed/cli.ts:2:22
Deno
deno compile, standalone executables
Compile your code into a standalone executable
1 Reply
carragom
carragomOP7h ago
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.

Did you find this page helpful?