Jervis2049 / vite-plugin-crx-mv3

Build a Chrome Extension with Vite⚡
201 stars 30 forks source link

content-scripts 路径问题 #2

Closed endday closed 1 year ago

endday commented 1 year ago

content-scripts 的文件路径和名称是固定的吗,能不能支持manifest可以用js,转换成json 或者相对路径转绝对路径 例如这样

import content from './content.js'
export default {
  ...
  "content_scripts": [
      {
        "matches": [
          "<all_urls>"
        ],
        "js": [
          content
        ],
        "run_at": "document_idle"
      }
    ],
  ...
}
endday commented 1 year ago
if (!manifest || typeof manifest != "string" || typeof manifest == "string" && !manifest.endsWith("manifest.json")) {
    throw new Error(
      "The manifest parameter is required and the value must be the path to the chrome extension's manifest.json."
    );
  }

我看源码只支持读取字符串,并解析json,那这样意味着content_scripts的路径配置不能是相对路径 output的目录结构又是固定的,那就无法自定义目录结构,要咋实现呢

Jervis2049 commented 1 year ago

content-scripts 的文件路径和名称是固定的吗,能不能支持manifest可以用js,转换成json 或者相对路径转绝对路径 例如这样

import content from './content.js'
export default {
  ...
  "content_scripts": [
      {
        "matches": [
          "<all_urls>"
        ],
        "js": [
          content
        ],
        "run_at": "document_idle"
      }
    ],
  ...
}

content-scripts 的文件路径和名称是固定的吗,能不能支持manifest可以用js,转换成json 或者相对路径转绝对路径 例如这样

import content from './content.js'
export default {
  ...
  "content_scripts": [
      {
        "matches": [
          "<all_urls>"
        ],
        "js": [
          content
        ],
        "run_at": "document_idle"
      }
    ],
  ...
}

原本确实是固定content.js都是放置在content-scripts目录,下个小版本会优化这个问题,改进之后,就可以像以下这样写了,output之后也会是这个目录。改成你这个例子那样感觉意义不大,还是会保留原来menifest.json的配置写法。

"content_scripts": [{
"matches": [ "<all_urls>" ],
"js": ["content.js"]
}],
endday commented 1 year ago

我测试了下main分支的代码,确实已经可以自动修改js目录了,就等大佬你发版了