diff --git a/packages/rollup-plugin/package-lock.json b/packages/rollup-plugin/package-lock.json index 8cf56a5..42fbffe 100644 --- a/packages/rollup-plugin/package-lock.json +++ b/packages/rollup-plugin/package-lock.json @@ -1,12 +1,12 @@ { "name": "@wq/rollup-plugin", - "version": "2.0.0-alpha.3", + "version": "2.0.0-beta.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@wq/rollup-plugin", - "version": "2.0.0-alpha.3", + "version": "2.0.0-beta.1", "license": "MIT", "devDependencies": { "@babel/plugin-transform-react-jsx": "^7.21.0", diff --git a/packages/rollup-plugin/package.json b/packages/rollup-plugin/package.json index 5d433c1..0eaf233 100644 --- a/packages/rollup-plugin/package.json +++ b/packages/rollup-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@wq/rollup-plugin", - "version": "2.0.0-alpha.3", + "version": "2.0.0-beta.1", "description": "Build custom wq plugins that integrate with wq.js", "type": "module", "main": "src/index.js", diff --git a/packages/rollup-plugin/src/__tests__/fixtures/project/input.js b/packages/rollup-plugin/src/__tests__/fixtures/project/input.js index 338f502..1c878e3 100644 --- a/packages/rollup-plugin/src/__tests__/fixtures/project/input.js +++ b/packages/rollup-plugin/src/__tests__/fixtures/project/input.js @@ -1,6 +1,8 @@ import app from "@wq/app"; import material from "@wq/material"; import mapgl from "@wq/map-gl"; +import analyst from "@wq/analyst"; +import wizard from "@wq/wizard"; import myPlugin from "./plugin.js"; -app.use([material, mapgl, myPlugin]); +app.use([material, mapgl, analyst, wizard, myPlugin]); diff --git a/packages/rollup-plugin/src/__tests__/fixtures/project/output.js b/packages/rollup-plugin/src/__tests__/fixtures/project/output.js index 3df9704..2df1baf 100644 --- a/packages/rollup-plugin/src/__tests__/fixtures/project/output.js +++ b/packages/rollup-plugin/src/__tests__/fixtures/project/output.js @@ -1,4 +1,6 @@ import { modules } from "./wq.js"; +import analyst from "./analyst.js"; +import wizard from "./wizard.js"; import myPlugin from "./plugin.js"; const { "@wq/app": app } = modules; @@ -9,4 +11,4 @@ const materialPlugin = material.default; const { "@wq/map-gl": mapgl } = modules; const mapglPlugin = mapgl.default; -app.use([materialPlugin, mapglPlugin, myPlugin]); +app.use([materialPlugin, mapglPlugin, analyst, wizard, myPlugin]); diff --git a/packages/rollup-plugin/src/index.js b/packages/rollup-plugin/src/index.js index c39ee64..9203632 100644 --- a/packages/rollup-plugin/src/index.js +++ b/packages/rollup-plugin/src/index.js @@ -1,12 +1,14 @@ import modules from "./modules.js"; -const prefix = "\0wq-bundle:"; +const prefix = "\0wq-bundle:", + defaultConfig = {urlBase: "."}; -export default function wq() { +export default function wq(config) { + const { urlBase } = {...defaultConfig,...config}; return { name: "@wq/rollup-plugin", resolveId(id) { - if (id == "./wq.js") { + if (id == `${urlBase}/wq.js`) { return { id, external: true }; } if (id.match(/\?commonjs-proxy$/)) { @@ -16,25 +18,30 @@ export default function wq() { return { id: `${prefix}${id}`, }; + } else if (id.startsWith("@wq/")) { + return { + id: id.replace(/^@wq/, urlBase) + ".js", + external: true, + }; } }, load(id) { if (id.startsWith(prefix)) { - return createVirtualModule(id.replace(prefix, "")); + return createVirtualModule(id.replace(prefix, ""), urlBase); } }, enforce: "pre", // Vite }; } -function createVirtualModule(id) { +function createVirtualModule(id, urlBase) { const { name, hasDefault, exports } = modules[id], exportStr = exports.join(", "), importStr = exports .map((exp) => `const { ${exp} } = ${name};`) .join("\n"); if (hasDefault) { - return `import { modules } from './wq.js'; + return `import { modules } from '${urlBase}/wq.js'; const { '${id}': ${name} } = modules; const ${name}Plugin = ${name}.default; export default ${name}Plugin; @@ -42,7 +49,7 @@ ${importStr} export { ${exportStr} }; `; } else { - return `import { modules } from './wq.js'; + return `import { modules } from '${urlBase}/wq.js'; const { '${id}': ${name} } = modules; export default ${name}; ${importStr} diff --git a/packages/rollup-plugin/src/modules.js b/packages/rollup-plugin/src/modules.js index 6b5f396..41f21e3 100644 --- a/packages/rollup-plugin/src/modules.js +++ b/packages/rollup-plugin/src/modules.js @@ -121,7 +121,6 @@ const modules = { "exact", "checkPropTypes", "resetWarningCache", - "PropTypes", ], hasDefault: false, }, diff --git a/packages/rollup-plugin/update_modules.js b/packages/rollup-plugin/update_modules.js index 455d992..81034d3 100644 --- a/packages/rollup-plugin/update_modules.js +++ b/packages/rollup-plugin/update_modules.js @@ -31,7 +31,9 @@ async function update_modules() { name: depNames[name] || camelCase(name.replace(/\//g, "-").replace("@", "")), - exports: Object.keys(exports).filter((e) => e !== "default"), + exports: Object.keys(exports).filter( + (e) => e !== "default" && e !== depNames[name] + ), hasDefault, }; });