Svelte CodeMirror 编辑器项目教程
1. 项目的目录结构及介绍
svelte-codemirror-editor/
├── public/
│ ├── favicon.ico
│ └── index.html
├── src/
│ ├── components/
│ │ └── CodeMirrorEditor.svelte
│ ├── main.js
│ └── App.svelte
├── package.json
├── README.md
└── rollup.config.js
- public/: 存放静态资源文件,如
favicon.ico
和index.html
。 - src/: 项目的源代码目录。
- components/: 存放可复用的组件,如
CodeMirrorEditor.svelte
。 - main.js: 项目的入口文件。
- App.svelte: 主应用组件。
- components/: 存放可复用的组件,如
- package.json: 项目的依赖和脚本配置文件。
- README.md: 项目说明文档。
- rollup.config.js: Rollup 构建配置文件。
2. 项目的启动文件介绍
main.js
import App from './App.svelte';
const app = new App({
target: document.body,
props: {
name: 'world'
}
});
export default app;
- main.js 是项目的入口文件,负责初始化并挂载
App.svelte
组件到document.body
。
3. 项目的配置文件介绍
package.json
{
"name": "svelte-codemirror-editor",
"version": "1.0.0",
"scripts": {
"build": "rollup -c",
"dev": "rollup -c -w",
"start": "sirv public"
},
"dependencies": {
"codemirror": "^5.58.3",
"svelte": "^3.31.2"
},
"devDependencies": {
"@rollup/plugin-commonjs": "^16.0.0",
"@rollup/plugin-node-resolve": "^11.0.0",
"rollup": "^2.3.4",
"rollup-plugin-svelte": "^7.0.0",
"sirv-cli": "^1.0.0"
}
}
- package.json 包含了项目的名称、版本、脚本命令、依赖和开发依赖。
- scripts: 定义了构建、开发和启动服务的命令。
- dependencies: 生产环境依赖,如
codemirror
和svelte
。 - devDependencies: 开发环境依赖,如 Rollup 和 Sirv CLI。
rollup.config.js
import svelte from 'rollup-plugin-svelte';
import commonjs from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
import { terser } from 'rollup-plugin-terser';
export default {
input: 'src/main.js',
output: {
sourcemap: true,
format: 'iife',
name: 'app',
file: 'public/build/bundle.js'
},
plugins: [
svelte({
dev: !production,
css: css => {
css.write('public/build/bundle.css');
}
}),
resolve({
browser: true,
dedupe: ['svelte']
}),
commonjs(),
production && terser()
],
watch: {
clearScreen: false
}
};
- rollup.config.js 是 Rollup 的配置文件,定义了输入文件、输出文件、插件等。
- input: 指定入口文件为
src/main.js
。 - output: 定义输出文件的格式和路径。
- plugins: 使用 Svelte 插件、CommonJS 插件、Node 解析插件和 Terser 插件。
- input: 指定入口文件为
以上是 Svelte