kiwilan / nuxt-svg-transformer

Nuxt 3 module. Transform SVG to inject dynamically into Vue component, type included. Powered by unplugin.
https://github.com/kiwilan/unplugin-svg-transformer
MIT License
27 stars 6 forks source link

hardcoded paths in dist/module.mjs #6

Closed ydnar closed 1 year ago

ydnar commented 1 year ago

Is this intentional?

import jiti from "file:///Users/ewilan/Workspace/nuxt-svg-transformer/node_modules/.pnpm/jiti@1.16.0/node_modules/jiti/lib/index.js";

/** @type {import("/Users/ewilan/Workspace/nuxt-svg-transformer/src/module")} */
const _module = jiti(null, { interopDefault: true, esmResolve: true })("/Users/ewilan/Workspace/nuxt-svg-transformer/src/module.ts");

export default _module;

We get this error:

ERROR  Error while requiring module nuxt-svg-transformer: Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/Users/ewilan/Workspace/nuxt-svg-transformer/node_modules/.pnpm/jiti@1.16.0/node_modules/jiti/lib/index.js' imported from /Users/ydnar/development/domainr/tenaya/node_modules/.pnpm/nuxt-svg-transformer@0.1.5/node_modules/nuxt-svg-transformer/dist/module.mjs
alexovn commented 1 year ago

Yeah, this error is exist😕 Is it the same library?

ewilan-riviere commented 1 year ago

Thanks, I will fix this.

ewilan-riviere commented 1 year ago

Could you try 0.2.0 version?

alexovn commented 1 year ago

Hi, Ewilan. Still same issue and I know how to solve it. I've tested it. You just need go to package.json, find "dev:prepare": "nuxt-module-build --stub && nuxi prepare playground" in scripts, and delete prefix --stub, 'cause it's for development purposes. Link for nuxt repo

ewilan-riviere commented 1 year ago

Hi! Thanks for your comment!

In my case, it's caused by npm pack for local testing, it's curious, it's works for me. Are you sure --stub is responsible of this problem?

alexovn commented 1 year ago

Look at dist/module.mjs. You will notice something like this if you have --stub prefix:

import jiti from "file:///Users/ewilan/Workspace/nuxt-svg-transformer/node_modules/.pnpm/jiti@1.17.0/node_modules/jiti/lib/index.js";

/** @type {import("/Users/ewilan/Workspace/nuxt-svg-transformer/src/module")} */
const _module = jiti(null, { interopDefault: true, esmResolve: true })("/Users/ewilan/Workspace/nuxt-svg-transformer/src/module.ts");

export default _module;

But as I understand if --stub prefix is removed it looks like unpacking modules:

import { readFileSync, mkdirSync, createWriteStream, rm, existsSync, writeFileSync, appendFileSync } from 'fs';
import { defineNuxtModule, createResolver, addComponent, addTemplate, extendViteConfig } from '@nuxt/kit';
import { resolve } from 'path';
import { readdir } from 'fs/promises';

const name = "nuxt-svg-transformer";
const version = "0.2.0";

class Reader {
  constructor(directory, extension) {
    this.files = [];
    this.filesList = [];
    this.directory = directory;
    this.extension = extension;
  }
  static async make(dir, ext) {
    const reader = new Reader(dir, ext);
    reader.files = await reader.getFiles(reader.directory);
    reader.filesList = reader.setFilesList();
    return reader;
  }
  /**
   * Return `File[]`.
   */
  getFilesList() {
    return this.filesList;
  }
  ...
alexovn commented 1 year ago

I tried to change dist folder and everything works perfect, but anyway I don't understand why my pull request to you didn't go well. It failed on tests😕

ewilan-riviere commented 1 year ago

You're right, it's cause by --stub. The error is weird:

{
  "scripts": {
    "prepare": "npm run dev:prepare",
    "dev:prepare": "nuxt-module-build --stub && nuxi prepare playground",
    "release": "pnpm prepack && pnpm test && git push --follow-tags && npm publish",
  },
}

I create prepare script to trigger it on pnpm i and it's trigger on each release automatically, so each release is broken. Shame on me. Thanks for your help, I will repair this today!

ewilan-riviere commented 1 year ago

Could you tell me if it works, now with 0.2.5? I tested on fresh nuxt app, it's okay for me.

alexovn commented 1 year ago

Okey, I will check it👌

alexovn commented 1 year ago

Yeap, everything is good. Thank you!

ewilan-riviere commented 1 year ago

Thanks you for your help!