lisonge / vite-plugin-monkey

A vite plugin server and build your.user.js for userscript engine like Tampermonkey, Violentmonkey, Greasemonkey, ScriptCat
MIT License
1.33k stars 70 forks source link

Invalid package version deduction #29

Closed gander closed 1 year ago

gander commented 1 year ago

I am adding a package that is in the beta:

npm install @formkit/vue
npm show @formkit/vue

# @formkit/vue@1.0.0-beta.11

Then I set up the CDN:

'@formkit/vue': cdn.jsdelivr('FormKit', 'dist/formkit-vue.js'),

During the build, the following message appears:

[plugin-monkey] not found module @formkit/vue version, use @formkit/vue@latest

The resulting file has an invalid URL to the package:

// @require      https://cdn.jsdelivr.net/npm/@formkit@latest/dist/formkit-vue.js

I am using the following workaround:

'@formkit/vue': [
    'FormKit',
    (version: string) => `https://cdn.jsdelivr.net/npm/@formkit/vue@${version}/dist/formkit-vue.js`,
],
// @require      https://cdn.jsdelivr.net/npm/@formkit/vue@latest/dist/formkit-vue.js
lisonge commented 1 year ago

you can manually fix it by import json, I will fix this later

// vite.config.ts
import pkg from '@formkit/vue/package.json';

/*
'@formkit/vue': [
    'FormKit',
    `https://cdn.jsdelivr.net/npm/@formkit/vue@${pkg.version}/dist/formkit-vue.js`,
],
*/
gander commented 1 year ago

Not working

TS2732: Cannot find module '@formkit/vue/package.json'. Consider using '--resolveJsonModule' to import module with '.json' extension.

Even with config (crash during building):

"resolveJsonModule": true,
lisonge commented 1 year ago

use "vite": "3.1.6"

or use fs.readFile https://github.com/lisonge/pkg-cdn/blob/af3dd82f4a0d161116424179482c70b954cd1ad4/main.ts#L19-L23 image

lisonge commented 1 year ago

fixed by v2.7.1

about @formkit/vue bug, see @formkit/vue#404

lisonge commented 1 year ago

test example see playground/resolve-package-json