当我使用此汇总
"rollup": "^3.27.0"
编译项目时,显示错误:
y-websocket git:(ts-migration) ✗ npm run build
npm info using [email protected]
npm info using [email protected]
> [email protected] build
> tsc --outDir dist/lib --declarationDir dist/types --declaration true && rollup -c
./src/y-websocket.ts → dist/y-websocket.cjs...
[!] RollupError: Unexpected token (Note that you need plugins to import files that are not JavaScript)
src/y-websocket.ts (28:21)
26: * @type {Array<function(encoding.Encoder, decoding.Decoder, WebsocketProvider, boolean, number):void>}
27: */
28: const messageHandlers: any[] = [];
^
29:
30: messageHandlers[messageSync] = (
at error (/Users/xiaoqiangjiang/source/reddwarf/backend/y-websocket/node_modules/rollup/dist/shared/rollup.js:353:30)
at Module.error (/Users/xiaoqiangjiang/source/reddwarf/backend/y-websocket/node_modules/rollup/dist/shared/rollup.js:15237:16)
at Module.tryParse (/Users/xiaoqiangjiang/source/reddwarf/backend/y-websocket/node_modules/rollup/dist/shared/rollup.js:15968:25)
at Module.setSource (/Users/xiaoqiangjiang/source/reddwarf/backend/y-websocket/node_modules/rollup/dist/shared/rollup.js:15569:39)
at ModuleLoader.addModuleSource (/Users/xiaoqiangjiang/source/reddwarf/backend/y-websocket/node_modules/rollup/dist/shared/rollup.js:25804:20)
我尝试将
"@rollup/plugin-typescript": "^12.1.2"
包和 typecrit 插件添加到滚动配置文件中,如下所示:
import typescript from '@rollup/plugin-typescript';
export default {
input: './src/y-websocket.ts',
external: id => /^(lib0|yjs|y-protocols)/.test(id),
output: [{
name: 'y-websocket',
file: 'dist/y-websocket.cjs',
format: 'cjs',
sourcemap: true,
dir: 'dist',
paths: path => {
if (/^lib0\//.test(path)) {
return `lib0/dist${path.slice(4)}.cjs`
} else if (/^y-protocols\//.test(path)) {
return `y-protocols/dist${path.slice(11)}.cjs`
}
return path
},
plugins: [typescript()]
}]
}
仍然没有解决这个问题,我错过了什么吗?我应该怎么做才能解决这个问题?我已在 tsconfig.ts 文件中添加 rootDir,如下所示:
"rootDir": "src",
没有解决这个问题。
请仔细查看
Rollup
的基本 typescript
配置:
// rollup.config.js
import typescript from '@rollup/plugin-typescript';
export default {
input: 'src/app.ts',
output: {
dir: 'output',
format: 'cjs',
},
plugins: [typescript()],
};
plugins
部分应位于导出对象的根部。在您的情况下,它位于 output
数组的元素内。
我认为这就是你错误的原因。