vite-plugin-fast-external
Advanced tools
Comparing version 1.4.2 to 1.4.3
84
index.js
@@ -1,3 +0,3 @@ | ||
const fs = require('fs') | ||
const path = require('path') | ||
const fs = require('fs'); | ||
const path = require('path'); | ||
@@ -8,4 +8,4 @@ module.exports = function external( | ||
) { | ||
let root = process.cwd() | ||
const viteExternalId = '.vite-plugin-fast-external' | ||
let root = process.cwd(); | ||
let externalDir = '.vite-plugin-fast-external'; | ||
@@ -18,7 +18,18 @@ return { | ||
// TODO: config.root is relative path | ||
root = config.root | ||
root = config.root; | ||
} | ||
rewriteAlias(root, config, externals, viteExternalId) | ||
generateExternalFile(root, externals, viteExternalId, options?.format || 'esm') | ||
// absolute path | ||
externalDir = path.join(node_modules(root), externalDir); | ||
rewriteAlias( | ||
config, | ||
externals, | ||
externalDir, | ||
); | ||
generateExternalFile( | ||
externals, | ||
externalDir, | ||
options?.format || 'esm', | ||
); | ||
} | ||
@@ -30,5 +41,5 @@ } | ||
if (!(fs.existsSync(dir) && fs.statSync(dir).isDirectory())) { | ||
fs.mkdirSync(dir, { recursive: true }) | ||
fs.mkdirSync(dir, { recursive: true }); | ||
} | ||
return dir | ||
return dir; | ||
} | ||
@@ -38,40 +49,35 @@ | ||
if (node_modules.p) { | ||
return node_modules.p | ||
return node_modules.p; | ||
} | ||
const p = path.join(root, 'node_modules') | ||
const p = path.join(root, 'node_modules'); | ||
if (fs.existsSync(p)) { | ||
return node_modules.p = p | ||
return node_modules.p = p; | ||
} | ||
if (count >= 19) { | ||
throw new Error('Can not found node_modules directory.') | ||
throw new Error('Can not found node_modules directory.'); | ||
} | ||
return node_modules(path.join(root, '..'), count + 1) | ||
return node_modules(path.join(root, '..'), count + 1); | ||
} | ||
function generateExternalFile( | ||
root, | ||
externals, | ||
directory, | ||
format | ||
externalDir, | ||
format, | ||
) { | ||
// ensure .vite-plugin-fast-external directory existed | ||
const externalDir = path.join(node_modules(root), directory) | ||
fs.existsSync(externalDir) || fs.mkdirSync(externalDir) | ||
// generate external module file. | ||
// generate external module file | ||
for (const [module, strOrFn] of Object.entries(externals)) { | ||
const moduleId = path.join(node_modules(root), directory, `${module}.js`) | ||
let moduleContent | ||
const moduleId = path.join(externalDir, `${module}.js`); | ||
let moduleContent; | ||
if (typeof strOrFn === 'string') { | ||
const iifeName = strOrFn | ||
const iifeName = strOrFn; | ||
moduleContent = format === 'cjs' | ||
? `const ${iifeName} = window['${iifeName}']; module.exports = ${iifeName};` | ||
: `const ${iifeName} = window['${iifeName}']; export { ${iifeName} as default }` | ||
: `const ${iifeName} = window['${iifeName}']; export { ${iifeName} as default }`; | ||
} else { | ||
moduleContent = strOrFn() | ||
moduleContent = strOrFn(); | ||
} | ||
// for '@scope/name' package | ||
ensureDir(path.parse(moduleId).dir) | ||
fs.writeFileSync(moduleId, moduleContent) | ||
ensureDir(path.parse(moduleId).dir); | ||
fs.writeFileSync(moduleId, moduleContent); | ||
} | ||
@@ -81,22 +87,22 @@ } | ||
function rewriteAlias( | ||
root, | ||
config, | ||
external, | ||
directory | ||
externals, | ||
externalDir, | ||
) { | ||
if (!config.resolve) { | ||
config.resolve = {} | ||
config.resolve = {}; | ||
} | ||
let alias = config.resolve.alias || {} | ||
let alias = config.resolve.alias || {}; | ||
if (!Array.isArray(alias)) { | ||
alias = Object.entries(alias).map(([k, v]) => ({ find: k, replacement: v })) | ||
// keep the the original alias | ||
alias = Object.entries(alias).map(([k, v]) => ({ find: k, replacement: v })); | ||
} | ||
Object.keys(external).forEach(k => { | ||
// redirect external module to `node_modules/.vite-plugin-fast-external` directory | ||
alias.push({ find: k, replacement: path.join(node_modules(root), directory, k) }) | ||
Object.keys(externals).forEach(k => { | ||
// redirect external-module to `node_modules/.vite-plugin-fast-external` | ||
alias.push({ find: k, replacement: path.join(externalDir, k) }); | ||
}) | ||
config.resolve.alias = alias | ||
config.resolve.alias = alias; | ||
} |
{ | ||
"name": "vite-plugin-fast-external", | ||
"version": "1.4.2", | ||
"version": "1.4.3", | ||
"description": "An tiny and fast external plugin for vite.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
116
5518