feat: Simplify n8n/chat build process (no-changelog) (#9952)

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
This commit is contained in:
Alex Grozav 2024-07-05 15:44:19 +03:00 committed by GitHub
parent 0f5dea37f4
commit aca38a8f9c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 90 additions and 1050 deletions

View file

@ -31,9 +31,9 @@ Open the **Webhook** node and replace `YOUR_PRODUCTION_WEBHOOK_URL` with your pr
Add the following code to your HTML page.
```html
<link href="https://cdn.jsdelivr.net/npm/@n8n/chat/style.css" rel="stylesheet" />
<link href="https://cdn.jsdelivr.net/npm/@n8n/chat/dist/style.css" rel="stylesheet" />
<script type="module">
import { createChat } from 'https://cdn.jsdelivr.net/npm/@n8n/chat/chat.bundle.es.js';
import { createChat } from 'https://cdn.jsdelivr.net/npm/@n8n/chat/dist/chat.bundle.es.js';
createChat({
webhookUrl: 'YOUR_PRODUCTION_WEBHOOK_URL'

View file

@ -1,21 +0,0 @@
import { defineBuildConfig } from 'unbuild';
export default defineBuildConfig({
entries: [
{
builder: 'mkdist',
format: 'esm',
input: './src',
outDir: './tmp/lib',
},
{
builder: 'mkdist',
format: 'cjs',
input: './src',
outDir: './tmp/cjs',
},
],
clean: true,
declaration: true,
failOnWarn: false,
});

View file

@ -3,13 +3,9 @@
"version": "0.19.0",
"scripts": {
"dev": "pnpm run storybook",
"build": "pnpm build:vite && pnpm run build:individual && npm run build:prepare",
"build:full": "pnpm build:vite && pnpm build:vite:full && pnpm run build:individual && npm run build:prepare",
"build": "pnpm build:vite && pnpm build:bundle",
"build:vite": "vite build",
"build:vite:full": "INCLUDE_VUE=true vite build",
"build:individual": "unbuild",
"build:prepare": "node scripts/postbuild.js",
"build:pack": "node scripts/pack.js",
"build:bundle": "INCLUDE_VUE=true vite build",
"preview": "vite preview",
"test:dev": "vitest",
"test": "vitest run --coverage",
@ -21,17 +17,18 @@
"build:storybook": "storybook build",
"release": "pnpm run build:full && cd dist && pnpm publish"
},
"main": "./chat.umd.js",
"module": "./chat.es.js",
"types": "./types/index.d.ts",
"main": "./dist/chat.umd.js",
"module": "./dist/chat.es.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"import": "./index.mjs",
"require": "./index.js"
"import": "./dist/chat.es.js",
"require": "./dist/chat.umd.js",
"types": "./dist/index.d.ts"
},
"./style.css": {
"import": "./style.css",
"require": "./style.css"
"import": "./dist/style.css",
"require": "./dist/style.css"
},
"./*": {
"import": "./*",
@ -49,11 +46,14 @@
"@iconify-json/mdi": "^1.1.54",
"@n8n/storybook": "workspace:*",
"@types/markdown-it": "^12.2.3",
"shelljs": "^0.8.5",
"unbuild": "^2.0.0",
"unplugin-icons": "^0.17.0",
"vite-plugin-dts": "^3.7.3"
"vite-plugin-dts": "^3.9.1"
},
"files": [
"README.md",
"LICENSE.md",
"dist"
],
"repository": {
"type": "git",
"url": "git+https://github.com/n8n-io/n8n.git"

View file

@ -1,11 +0,0 @@
const path = require('path');
const shelljs = require('shelljs');
const rootDirPath = path.resolve(__dirname, '..');
const distDirPath = path.resolve(rootDirPath, 'dist');
shelljs.cd(rootDirPath);
shelljs.exec('npm run build');
shelljs.cd(distDirPath);
shelljs.exec('npm pack');

View file

@ -1,36 +0,0 @@
const path = require('path');
const shelljs = require('shelljs');
const glob = require('fast-glob');
const rootDirPath = path.resolve(__dirname, '..');
const n8nRootDirPath = path.resolve(rootDirPath, '..', '..', '..');
const distDirPath = path.resolve(rootDirPath, 'dist');
const srcDirPath = path.resolve(rootDirPath, 'src');
const libDirPath = path.resolve(rootDirPath, 'tmp', 'lib');
const cjsDirPath = path.resolve(rootDirPath, 'tmp', 'cjs');
const packageJsonFilePath = path.resolve(rootDirPath, 'package.json');
const readmeFilePath = path.resolve(rootDirPath, 'README.md');
const licenseFilePath = path.resolve(n8nRootDirPath, 'LICENSE.md');
shelljs.cp(packageJsonFilePath, distDirPath);
shelljs.cp(readmeFilePath, distDirPath);
shelljs.cp(licenseFilePath, distDirPath);
shelljs.mv(path.resolve(distDirPath, 'src'), path.resolve(distDirPath, 'types'));
function moveFiles(files, from, to) {
files.forEach((file) => {
const toFile = file.replace(from, to);
shelljs.mkdir('-p', path.dirname(toFile));
shelljs.mv(file, toFile);
});
}
const cjsFiles = glob.sync(path.resolve(cjsDirPath, '**', '*'));
moveFiles(cjsFiles, 'tmp/cjs', 'dist');
shelljs.rm('-rf', cjsDirPath);
const libFiles = glob.sync(path.resolve(libDirPath, '**/*'));
moveFiles(libFiles, 'tmp/lib', 'dist');
shelljs.rm('-rf', libDirPath);

View file

@ -0,0 +1,5 @@
.n8n-chat {
@import 'highlight.js/styles/github';
}
@import 'css';

View file

@ -1,8 +1,9 @@
{
"extends": "../../../tsconfig.json",
"compilerOptions": {
"rootDir": ".",
"rootDir": "src",
"outDir": "dist",
"baseUrl": "src",
"target": "esnext",
"module": "esnext",
"allowJs": true,
@ -10,15 +11,13 @@
"incremental": false,
"allowSyntheticDefaultImports": true,
"resolveJsonModule": true,
"baseUrl": ".",
"types": ["vitest/globals", "unplugin-icons/types/vue"],
"types": ["vitest/globals"],
"paths": {
"@/*": ["src/*"],
"@n8n/chat/*": ["src/*"]
"@n8n/chat/*": ["./*"]
},
"lib": ["esnext", "dom", "dom.iterable", "scripthost"],
// TODO: remove all options below this line
"useUnknownInCatchVariables": false
},
"include": ["src/**/*.ts", "src/**/*.vue", "**/*.d.ts"]
"include": ["**/*.ts", "**/*.vue"]
}

View file

@ -48,7 +48,7 @@ export function createPage({
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Chat</title>
<link href="https://cdn.jsdelivr.net/npm/normalize.css@8.0.1/normalize.min.css" rel="stylesheet" />
<link href="https://cdn.jsdelivr.net/npm/@n8n/chat/style.css" rel="stylesheet" />
<link href="https://cdn.jsdelivr.net/npm/@n8n/chat/dist/style.css" rel="stylesheet" />
<style>
html,
body,
@ -60,7 +60,7 @@ export function createPage({
</head>
<body>
<script type="module">
import { createChat } from 'https://cdn.jsdelivr.net/npm/@n8n/chat@latest/chat.bundle.es.js';
import { createChat } from 'https://cdn.jsdelivr.net/npm/@n8n/chat/dist/chat.bundle.es.js';
(async function () {
const authentication = '${sanitizedAuthentication}';

View file

@ -93,9 +93,9 @@ ${importCode} { createChat } from '@n8n/chat';`,
}));
const cdnCode = computed(
() => `<link href="https://cdn.jsdelivr.net/npm/@n8n/chat/style.css" rel="stylesheet" />
() => `<link href="https://cdn.jsdelivr.net/npm/@n8n/chat/dist/style.css" rel="stylesheet" />
<script type="module">
${importCode} { createChat } from 'https://cdn.jsdelivr.net/npm/@n8n/chat/chat.bundle.es.js';
${importCode} { createChat } from 'https://cdn.jsdelivr.net/npm/@n8n/chat/dist/chat.bundle.es.js';
${commonCode.value.createChat}
</${'script'}>`,

File diff suppressed because it is too large Load diff