microsoft / tfs-cli

Cross-platform CLI for Microsoft Team Foundation Server and Visual Studio Team Services
MIT License
371 stars 131 forks source link

Wrong mime type for `fsevents.node` #414

Open Drarig29 opened 2 years ago

Drarig29 commented 2 years ago

My node_modules contain the fsevents package, which depends on the host architecture.

The generated [Content-Types].xml file (extracted from the VSIX extension) contains the following:

<Override ContentType="text/plain" PartName="/datadog-ci/node_modules/fsevents/LICENSE"/>
<Override ContentType="arm64):&#x9;application/x-mach-binary" PartName="/datadog-ci/node_modules/fsevents/fsevents.node"/>

You can see the mime type is wrong here, and because of this it's impossible to upload the VSIX file. I get the following error when trying to upload:

A token is not valid. Refer to RFC 2616 for correct grammar of content types

Here is the output of the file --mime-type command:

datadog-ci/node_modules/fsevents/fsevents.node: application/x-mach-binary
datadog-ci/node_modules/fsevents/fsevents.node (for architecture x86_64):       application/x-mach-binary
datadog-ci/node_modules/fsevents/fsevents.node (for architecture arm64):        application/x-mach-binary

Temporary workaround

# Only extract the problematic file, and fix it with `sed`.
unzip -p $EXTENSION_FILENAME '\[Content_Types\].xml' | sed 's/arm64):&#x9;//' > '[Content_Types].xml'

# Update the problematic file with the fixed one.
zip $EXTENSION_FILENAME '[Content_Types].xml'
kirill-ivlev commented 2 years ago

Hi @Drarig29! Thanks for your request, we've added this feature request to our backlog. We'll take a look at it once we have enough capacity.

aalukacsko commented 2 years ago

I get this issue using npm 6 (6.14.17). I do not see this issue with npm 7 (7.24.2) or npm 8 (8.19.2). This is all using node 14.20.0 on Mac OSX 12.5.1.

Drarig29 commented 2 years ago

I get this issue using npm 6 (6.14.17). I do not see this issue with npm 7 (7.24.2) or npm 8 (8.19.2). This is all using node 14.20.0 on Mac OSX 12.5.1.

For me, it turned out the fsevents package (responsible for this error) was a dependency of one of our devDependencies. Usually this package is used by development tools to watch files for changes in MacOS.

So I'm now installing in production mode ([npm|yarn] install --production).

Ethan-Arrowood commented 1 year ago

Hey y'all this is still an issue. My build tool for the project is causing the same mime type to be produced and included in the bundle causing issues.

pwa-tapptic commented 1 year ago

Do you have any news on this? I've got exactly the same issue and workaround proposed by @Drarig29 works on my side.

Drarig29 commented 1 year ago

@kirill-ivlev if you haven't noticed, I proposed a PR to fix that already.

we've added this feature request to our backlog

This is not a feature request, but a bug to fix.

LanceMcCarthy commented 6 months ago

@kirill-ivlev Has there been any consideration on merging @Drarig29 's PR?

This is particularly a problem when using ARM64 devices to package extension.