NekitCorp / chrome-extension-svelte-typescript-boilerplate

Boilerplate for Chrome Extension Svelte Typescript project
237 stars 50 forks source link

Incorrectly processing TS #5

Closed avi12 closed 1 year ago

avi12 commented 2 years ago

Suppose I have the following structure:

src
  pages
    content
      index.ts
      second-file.ts

second-file.ts

export function calc() {
}

index.ts

import { calc } from "./second-file.ts";

dist/src/pages/content/index.js

import{g as A}from"./second-file.js"
// ...

manifest.json

{
  "content_scripts": [
    {
      "js": ["src/pages/content/index.js"]
    }
  ]
}

The issue is that since second-file.js isn't specified in web_accessible_resources, the content script will fail to load it

NekitCorp commented 2 years ago

Can't reproduce the problem.

src/pages/content/index.ts:

import type { IStorage } from "src/types";
import "./styles.scss";
import { calc } from "./utils";

chrome.storage.sync.get({ count: 0 } as IStorage, ({ count }: IStorage) => {
    console.log("content", count);
    console.log(calc(2, 5));
});

src/pages/content/utils.ts:

import { log } from "./logger";

export function calc(a: number, b: number) {
    log(a);
    log(b);
    return a + b;
}

src/pages/content/logger.ts:

export function log(data: unknown) {
    console.log(data);
}

Output:

✓ 13 modules transformed.
dist/src/pages/options/index.html    0.37 KiB
dist/src/pages/popup/index.html      0.37 KiB
dist/src/pages/background/index.js   0.12 KiB / gzip: 0.12 KiB
dist/src/pages/content/index.js      0.16 KiB / gzip: 0.13 KiB
dist/src/pages/options/index.js      0.20 KiB / gzip: 0.17 KiB
dist/src/pages/popup/index.js        0.20 KiB / gzip: 0.17 KiB
dist/assets/Options.js               4.70 KiB / gzip: 2.17 KiB
dist/assets/content.css              0.04 KiB / gzip: 0.06 KiB
dist/assets/Options.css              0.33 KiB / gzip: 0.21 KiB

dist/src/pages/content/index.js:

function c(o){console.log(o)}function t(o,n){return c(o),c(n),o+n}chrome.storage.sync.get({count:0},({count:o})=>{console.log("content",o),console.log(t(2,5))});