Skip to content

Instantly share code, notes, and snippets.

@clukhei
clukhei / subpath-import-postbuild
Created July 29, 2022 08:24
subpath-import-postbuild
/* eslint-disable no-console */
const { resolve, join, basename } = require('path');
const { readFile, writeFile, copy } = require('fs-extra');
const packagePath = process.cwd();
const distPath = join(packagePath, './dist');
const writeJson = (targetPath, obj) =>
writeFile(targetPath, JSON.stringify(obj, null, 2), 'utf8');
async function createPackageFile() {
@clukhei
clukhei / subpath-import-final-directory-structure
Last active July 29, 2022 08:19
subpath-import-final-directory-structure
dist
├── Accordion
│ ├── Accordion.d.ts
│ ├── AccordionBody.d.ts
│ ├── AccordionButton.d.ts
│ ├── AccordionCollapse.d.ts
│ ├── AccordionContext.d.ts
│ ├── AccordionHeader.d.ts
│ ├── AccordionItem.d.ts
│ ├── AccordionItemContext.d.ts
@clukhei
clukhei / subpath-import-rollup-plugins
Last active July 29, 2022 08:02
Subpath Imports Rollup plugins
import peerDepsExternal from "rollup-plugin-peer-deps-external";
import resolve from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";
import typescript from "rollup-plugin-typescript2";
import replace from "@rollup/plugin-replace";
import { terser } from "rollup-plugin-terser";
const packageJson = require("./package.json");
import generatePackageJson from "rollup-plugin-generate-package-json";
const plugins = [
@clukhei
clukhei / subpath-imports-rollup-1
Last active July 29, 2022 07:35
subpath imports rollup part 1
const packageJson = require("./package.json");
export default [
{
input: ["src/index.ts"],
output: [
{
file: packageJson.module,
format: "esm",
sourcemap: true,
exports: "named",
@clukhei
clukhei / subpath-imports-tsconfig.json
Created July 29, 2022 07:11
Subpath Imports tsconfig
{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
"lib": ["dom", "esnext"],
// output .d.ts declaration files for consumers
"declaration": true,
"declarationDir": "dist",
// output .js.map sourcemap files for consumers
"sourceMap": true,