mirror of
https://github.com/lucide-icons/lucide.git
synced 2025-12-16 19:57:41 +01:00
Revert .mjs modules in build for Lucide React (#1471)
* switch to different build strategy for dynamicIconImports * add remove for dynamicIconImports files
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -18,6 +18,9 @@ packages/**/src/icons/*.ts
|
|||||||
packages/**/src/icons/*.tsx
|
packages/**/src/icons/*.tsx
|
||||||
packages/**/src/aliases.ts
|
packages/**/src/aliases.ts
|
||||||
packages/**/src/dynamicIconImports.ts
|
packages/**/src/dynamicIconImports.ts
|
||||||
|
packages/**/dynamicIconImports.js
|
||||||
|
packages/**/dynamicIconImports.d.ts
|
||||||
|
packages/**/dynamicIconImports.js.map
|
||||||
packages/**/LICENSE
|
packages/**/LICENSE
|
||||||
categories.json
|
categories.json
|
||||||
tags.json
|
tags.json
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "lucide-react",
|
"name": "lucide-react",
|
||||||
"description": "A Lucide icon library package for React applications",
|
"description": "A Lucide icon library package for React applications",
|
||||||
"version": "0.0.1",
|
"version": "0.263.2-beta.0",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"homepage": "https://lucide.dev",
|
"homepage": "https://lucide.dev",
|
||||||
"bugs": "https://github.com/lucide-icons/lucide/issues",
|
"bugs": "https://github.com/lucide-icons/lucide/issues",
|
||||||
@@ -10,45 +10,24 @@
|
|||||||
"url": "https://github.com/lucide-icons/lucide.git",
|
"url": "https://github.com/lucide-icons/lucide.git",
|
||||||
"directory": "packages/lucide-react"
|
"directory": "packages/lucide-react"
|
||||||
},
|
},
|
||||||
"type": "module",
|
|
||||||
"author": "Eric Fennis",
|
"author": "Eric Fennis",
|
||||||
"amdName": "lucide-react",
|
"amdName": "lucide-react",
|
||||||
"exports": {
|
"main": "dist/cjs/lucide-react.js",
|
||||||
".": {
|
|
||||||
"import": "./dist/esm/lucide-react.mjs",
|
|
||||||
"require": "./dist/cjs/lucide-react.cjs",
|
|
||||||
"types": "./dist/lucide-react.d.ts"
|
|
||||||
},
|
|
||||||
"./icons": {
|
|
||||||
"import": "./dist/esm/icons/index.mjs",
|
|
||||||
"require": "./dist/cjs/lucide-react.cjs"
|
|
||||||
},
|
|
||||||
"./dynamicIconImports": {
|
|
||||||
"import": "./dist/esm/dynamicIconImports.mjs",
|
|
||||||
"types": "./dist/dynamicIconImports.d.ts"
|
|
||||||
},
|
|
||||||
"./src/createLucideIcon": {
|
|
||||||
"import": "./src/createLucideIcon.ts"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
|
||||||
"*": {
|
|
||||||
"dynamicIconImports": ["./dist/dynamicIconImports.d.ts"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"main": "dist/cjs/lucide-react.cjs",
|
|
||||||
"main:umd": "dist/umd/lucide-react.js",
|
"main:umd": "dist/umd/lucide-react.js",
|
||||||
"module": "dist/esm/lucide-react.mjs",
|
"module": "dist/esm/lucide-react.js",
|
||||||
"unpkg": "dist/umd/lucide-react.min.js",
|
"unpkg": "dist/umd/lucide-react.min.js",
|
||||||
"typings": "dist/lucide-react.d.ts",
|
"typings": "dist/lucide-react.d.ts",
|
||||||
"sideEffects": false,
|
"sideEffects": false,
|
||||||
"files": [
|
"files": [
|
||||||
"dist"
|
"dist",
|
||||||
|
"dynamicIconImports.js",
|
||||||
|
"dynamicIconImports.js.map",
|
||||||
|
"dynamicIconImports.d.ts"
|
||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm typecheck && pnpm build:bundles",
|
"build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm typecheck && pnpm build:bundles",
|
||||||
"copy:license": "cp ../../LICENSE ./LICENSE",
|
"copy:license": "cp ../../LICENSE ./LICENSE",
|
||||||
"clean": "rm -rf dist && rm -rf stats && rm -rf ./src/icons/*.ts",
|
"clean": "rm -rf dist && rm -rf stats && rm -rf ./src/icons/*.ts && rm -f dynamicIconImports.*",
|
||||||
"build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --withAliases --withDynamicImports --aliasesFileExtension=.ts --iconFileExtension=.ts --exportFileName=index.ts",
|
"build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --withAliases --withDynamicImports --aliasesFileExtension=.ts --iconFileExtension=.ts --exportFileName=index.ts",
|
||||||
"build:types": "node ./scripts/buildTypes.mjs",
|
"build:types": "node ./scripts/buildTypes.mjs",
|
||||||
"build:bundles": "rollup -c ./rollup.config.mjs",
|
"build:bundles": "rollup -c ./rollup.config.mjs",
|
||||||
|
|||||||
@@ -9,39 +9,46 @@ const inputs = [`src/lucide-react.ts`];
|
|||||||
const bundles = [
|
const bundles = [
|
||||||
{
|
{
|
||||||
format: 'umd',
|
format: 'umd',
|
||||||
extension: 'js',
|
|
||||||
inputs,
|
inputs,
|
||||||
outputDir,
|
outputDir,
|
||||||
minify: true,
|
minify: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
format: 'umd',
|
format: 'umd',
|
||||||
extension: 'js',
|
|
||||||
inputs,
|
inputs,
|
||||||
outputDir,
|
outputDir,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
format: 'cjs',
|
format: 'cjs',
|
||||||
extension: 'cjs',
|
|
||||||
inputs,
|
inputs,
|
||||||
outputDir,
|
outputDir,
|
||||||
aliasesSupport: true,
|
aliasesSupport: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
format: 'esm',
|
format: 'esm',
|
||||||
extension: 'mjs',
|
inputs,
|
||||||
inputs: [
|
|
||||||
...inputs,
|
|
||||||
'src/dynamicIconImports.ts',
|
|
||||||
],
|
|
||||||
outputDir,
|
outputDir,
|
||||||
preserveModules: true,
|
preserveModules: true,
|
||||||
aliasesSupport: true,
|
aliasesSupport: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
format: 'esm',
|
||||||
|
inputs: ['src/dynamicIconImports.ts'],
|
||||||
|
outputFile: 'dynamicIconImports.js',
|
||||||
|
aliasesSupport: true,
|
||||||
|
external: [/src/],
|
||||||
|
paths: (id) => {
|
||||||
|
if (id.match(/src/)) {
|
||||||
|
const [, modulePath] = id.match(/src\/(.*)\.ts/)
|
||||||
|
|
||||||
|
return `dist/esm/${modulePath}.js`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const configs = bundles
|
const configs = bundles
|
||||||
.map(({ inputs, outputDir, format, minify, preserveModules, aliasesSupport, extension }) =>
|
.map(({ inputs, outputDir, outputFile, format, minify, preserveModules, aliasesSupport, entryFileNames, external = [], paths }) =>
|
||||||
inputs.map(input => ({
|
inputs.map(input => ({
|
||||||
input,
|
input,
|
||||||
plugins: [
|
plugins: [
|
||||||
@@ -57,17 +64,22 @@ const configs = bundles
|
|||||||
),
|
),
|
||||||
...plugins(pkg, minify)
|
...plugins(pkg, minify)
|
||||||
],
|
],
|
||||||
external: ['react', 'prop-types'],
|
external: [
|
||||||
|
'react',
|
||||||
|
'prop-types',
|
||||||
|
...external
|
||||||
|
],
|
||||||
output: {
|
output: {
|
||||||
name: packageName,
|
name: packageName,
|
||||||
...(preserveModules
|
...(preserveModules
|
||||||
? {
|
? {
|
||||||
dir: `${outputDir}/${format}`,
|
dir:`${outputDir}/${format}`,
|
||||||
entryFileNames: `[name].${extension}`,
|
|
||||||
}
|
}
|
||||||
: {
|
: {
|
||||||
file: `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.${extension}`,
|
file: outputFile ?? `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`,
|
||||||
}),
|
}),
|
||||||
|
paths,
|
||||||
|
entryFileNames,
|
||||||
format,
|
format,
|
||||||
sourcemap: true,
|
sourcemap: true,
|
||||||
preserveModules,
|
preserveModules,
|
||||||
@@ -84,7 +96,7 @@ export default [
|
|||||||
{
|
{
|
||||||
input: 'src/dynamicIconImports.ts',
|
input: 'src/dynamicIconImports.ts',
|
||||||
output: [{
|
output: [{
|
||||||
file: `dist/dynamicIconImports.d.ts`, format: "es"
|
file: `dynamicIconImports.d.ts`, format: "es"
|
||||||
}],
|
}],
|
||||||
plugins: [dts()],
|
plugins: [dts()],
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user