Rollup + Ts
一、文件配置
| - src
| | - utils
| | | - .ts
| | - .babelrc
| | - main.js
| | - style.css
| - package.json
| - rollup.config.js
| - tsconfig.json
二、插件下载
rollup // rollup 基本的包
typescript // ts 包
@rollup/plugin-babel // 集成 rollup 和 babel
@babel/core // 集成 rollup 和 babel
@babel/preset-env // rollup babel 的主要包
@rollup/plugin-commonjs // 将 Commonjs 转换为 ES6
@rollup/plugin-node-resolve // 查找 node_modules 模块资源
@rollup/plugin-terser // 压缩代码
@rollup/plugin-typescript // rollup 能支持 typescript 的打包
rollup-plugin-livereload // 热更新
rollup-plugin-postcss // 解析 css 文件
rollup-plugin-serve // 运行项目
tslib // typescript 运行库
三、文件内容
.babelrc
{
"presets": [
[
"@babel/env",
{
"modules": false
}
]
]
}
rollup.config.js
import commonjs from "@rollup/plugin-commonjs"
import resolve from "@rollup/plugin-node-resolve"
import babel from "@rollup/plugin-babel"
import typescript from "@rollup/plugin-typescript";
import terser from "@rollup/plugin-terser";
import postcss from "rollup-plugin-postcss";
import serve from "rollup-plugin-serve";
import livereload from "rollup-plugin-livereload";
export default {
input: "./src/main.js",
output: {
file: "./dist/build.js",
format: "es",
sourcemap: true,
},
plugins: [
typescript(),
babel({
exclude: "node_modules/**",
}),
resolve(),
commonjs(),
terser(),
postcss(),
livereload(),
serve({
open: true,
contentBase: 'dist',
port: "8888",
headers: {
"Access-Control-Allow-Origin": "*",
},
}),
],
external: [],
};
tsconfig.json
{
"compilerOptions": {
"lib": ["es6", "DOM"],
"module": "esnext",
"allowJs": true,
"outDir": "/"
},
"exclude": [
"node_modules/**",
"public"
],
"include": [
"src/**/*"
]
}