Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"wrangler publish" fails, "Error: missing field type" #9

Closed
catharsis71 opened this issue Jun 4, 2022 · 11 comments
Closed

"wrangler publish" fails, "Error: missing field type" #9

catharsis71 opened this issue Jun 4, 2022 · 11 comments

Comments

@catharsis71
Copy link

I'm very new at this and having a bad time

The wrangler.toml does not have a "type" entry so "wrangler publish" fails like this:

$ wrangler r2 bucket list
Error: missing field `type`

I tried putting type = "javascript" in the file but it did not work

$ wrangler publish
✨  Basic JavaScript project found. Skipping unnecessary build!
Error: The entrypoint of your Worker (dist/index.js) could not be found.

I tried type = "typescript" but also did not work

$ wrangler publish
Error: enum TargetType does not have variant constructor typescript

I tried some other random guesses but nothing that worked

@kotx
Copy link
Owner

kotx commented Jun 4, 2022

Hi @catharsis71, are you using wrangler2? Wrangler v1 doesn't work with the new wrangler.tomls.

@catharsis71
Copy link
Author

seems like I have wrangler 1.19.12

is there any way to make it work with that version or am I just out of luck?

@kotx
Copy link
Owner

kotx commented Jun 4, 2022

Hmm, try setting type to javascript and running npm run prepublishOnly before publishing to compile the TypeScript to JavaScript (it should create the dist/index.js entrypoint).

@catharsis71
Copy link
Author

Well that did something but I'm not sure what

$ wrangler publish
✨  Basic JavaScript project found. Skipping unnecessary build!
Error: Something went wrong with the request to Cloudflare...
Uncaught SyntaxError: Cannot use import statement outside a module
  at line 1
 [API code: 10021]

I'll look into trying to get wrangler2 but I'm close to giving up on R2 because they make everything far too difficult

I don't suppose there's any possibility of doing this through the Cloudflare dashboard instead of using wrangler? I tried using the worker "Quick Edit" button and pasting in stuff from the index.js or index.ts but unsurprisingly it didn't work. I don't really even want to have all this NPM / etc stuff installed, I just installed it all temporarily and plan on uninstalling everything once the worker is functional (or I give up on the whole endeavor)

@kotx
Copy link
Owner

kotx commented Jun 5, 2022

Yeah, I'm not entirely sure why it's not working with Wrangler v1.
I don't think there's a way with the dashboard either, since it's a bit outdated TMK.

However, you can always try the GitHub Actions method, it doesn't require anything locally- you can create the R2 bucket, etc from the Cloudflare dashboard. If you decide on doing that, feel free to ask me if any issues arise.

@catharsis71
Copy link
Author

trying again now with wrangler2

$ wrangler2 publish
 ⛅️ wrangler 2.0.7
-------------------
✘ [ERROR] Could not resolve "range-parser"

    src/index.ts:1:23:
      1 │ import parseRange from "range-parser";
        ╵                        ~~~~~~~~~~~~~~

  You can mark the path "range-parser" as external to exclude it from the bundle, which will remove
  this error.


✘ [ERROR] Build failed with 1 error:

  src/index.ts:1:23: ERROR: Could not resolve "range-parser"


If you think this is a bug then please create an issue at https://github.com/cloudflare/wrangler2/issues/new.

@catharsis71
Copy link
Author

Now I'm trying the Github Actions method

is this the correct place for the secrets?

image

When I was running wrangler locally I just used "wrangler login" so I didn't have to mess with tokens/keys

I tried setting CF_API_TOKEN to my Global API Key but Cloudflare didn't seem to like it, I guess I actually need to create a token for this but what permissions does it need?

@kotx
Copy link
Owner

kotx commented Jun 5, 2022

✘ [ERROR] Could not resolve "range-parser"

Right, I forgot, you need to run npm install before. I'll put that in the README.

is this the correct place for the secrets?

Yup!

I tried setting CF_API_TOKEN to my Global API Key but Cloudflare didn't seem to like it, I guess I actually need to create a token for this but what permissions does it need?

Just Workers Scripts:Edit. I'll put that in the README as well.

Edit: README has been updated!

@catharsis71
Copy link
Author

okay so we definitely have some level of functionality now

with a custom subdomain, seems to be working fine

using workers.dev was also working fine but I turned it off because I don't really need it

then I got to looking at "routes" stuff which I don't really understand

I thought maybe instead of being reliant on a files.(domain).com subdomain, I could rig it so that (domain).com/files/ also works

image

and it's clearly hitting the script because I'm getting your "File Not Found" message but I'm getting that even when requesting a file that does exist, also, requests to (domain).com/files/ without a file specified get "File Not Found" instead of "OK"

If I do it like this do I need to move all my files into a /files/ subdirectory in the bucket or something along those lines?

sorry to venture off-topic from what I opened this for

@kotx
Copy link
Owner

kotx commented Jun 5, 2022

If I do it like this do I need to move all my files into a /files/ subdirectory in the bucket or something along those lines?

Yeah, you'd have to prefix all your files with files/. I could add functionality to have a base/prefix path to look for, if you like.

I'll also close this issue since the original problem was resolved, but if you have any other questions feel free to ask them.

@kotx kotx closed this as completed Jun 5, 2022
@catharsis71
Copy link
Author

Thank you for all your assistance on this

yes, a base/prefix thing could potentially be useful but not really a big deal

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants