I’m receiving an error related to the rollup.config.js configuration of my Vue3 project.
Erro
<code>[!] RollupError: Unexpected token (Note that you need plugins to import files that are not JavaScript)
src/components/RktIcon/RktIcon.vue?vue&type=script&setup=true&lang.ts (11:7)
9: import { useAllTokens } from '../../composables/useAllTokens'
10:
11: type Size = 'small' | 'medium'
^
at error (/home/paulo-pr/moskit/moskit-rock-it/node_modules/rollup/dist/shared/rollup.js:353:30)
at Module.error (/home/paulo-pr/moskit/moskit-rock-it/node_modules/rollup/dist/shared/rollup.js:15237:16)
at Module.tryParse (/home/paulo-pr/moskit/moskit-rock-it/node_modules/rollup/dist/shared/rollup.js:15968:25)
at Module.setSource (/home/paulo-pr/moskit/moskit-rock-it/node_modules/rollup/dist/shared/rollup.js:15569:39)
at ModuleLoader.addModuleSource (/home/paulo-pr/moskit/moskit-rock-it/node_modules/rollup/dist/shared/rollup.js:25804:20)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
</code>
<code>[!] RollupError: Unexpected token (Note that you need plugins to import files that are not JavaScript)
src/components/RktIcon/RktIcon.vue?vue&type=script&setup=true&lang.ts (11:7)
9: import { useAllTokens } from '../../composables/useAllTokens'
10:
11: type Size = 'small' | 'medium'
^
at error (/home/paulo-pr/moskit/moskit-rock-it/node_modules/rollup/dist/shared/rollup.js:353:30)
at Module.error (/home/paulo-pr/moskit/moskit-rock-it/node_modules/rollup/dist/shared/rollup.js:15237:16)
at Module.tryParse (/home/paulo-pr/moskit/moskit-rock-it/node_modules/rollup/dist/shared/rollup.js:15968:25)
at Module.setSource (/home/paulo-pr/moskit/moskit-rock-it/node_modules/rollup/dist/shared/rollup.js:15569:39)
at ModuleLoader.addModuleSource (/home/paulo-pr/moskit/moskit-rock-it/node_modules/rollup/dist/shared/rollup.js:25804:20)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
</code>
[!] RollupError: Unexpected token (Note that you need plugins to import files that are not JavaScript)
src/components/RktIcon/RktIcon.vue?vue&type=script&setup=true&lang.ts (11:7)
9: import { useAllTokens } from '../../composables/useAllTokens'
10:
11: type Size = 'small' | 'medium'
^
at error (/home/paulo-pr/moskit/moskit-rock-it/node_modules/rollup/dist/shared/rollup.js:353:30)
at Module.error (/home/paulo-pr/moskit/moskit-rock-it/node_modules/rollup/dist/shared/rollup.js:15237:16)
at Module.tryParse (/home/paulo-pr/moskit/moskit-rock-it/node_modules/rollup/dist/shared/rollup.js:15968:25)
at Module.setSource (/home/paulo-pr/moskit/moskit-rock-it/node_modules/rollup/dist/shared/rollup.js:15569:39)
at ModuleLoader.addModuleSource (/home/paulo-pr/moskit/moskit-rock-it/node_modules/rollup/dist/shared/rollup.js:25804:20)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
You’ve already added the plugins rollup-plugin-vue’, @rollup/plugin-typescript, @rollup/plugin-node-resolve which were theoretically supposed to solve the problem, but I still keep getting the same error.
Below is the content of my rollup.config.js file
rollup.config.js
<code>import vue from 'rollup-plugin-vue'
import postcss from 'rollup-plugin-postcss'
import terser from '@rollup/plugin-terser'
import json from '@rollup/plugin-json'
import alias from '@rollup/plugin-alias'
import { nodeResolve } from '@rollup/plugin-node-resolve'
import commonjs from '@rollup/plugin-commonjs'
import typescript from '@rollup/plugin-typescript'
export default [
{
input: 'src/components/index.ts',
output: [
{
format: 'esm',
file: 'dist/library.mjs'
},
{
format: 'cjs',
file: 'dist/library.js'
}
],
plugins: [
vue({
include: /.vue$/,
preprocessStyles: true,
css: true,
compileTemplate: true
}),
typescript({
tsconfig: 'tsconfig.rollup.json',
declaration: true,
declarationDir: 'dist/types',
rootDir: 'src',
exclude: ['**/__tests__', '**/*.test.ts']
}),
nodeResolve({
extensions: ['.js', '.ts', '.vue']
}),
commonjs(),
alias({
entries: [{ find: '@', replacement: 'src' }]
}),
json(),
postcss(),
terser()
],
external: ['vue']
}
]
</code>
<code>import vue from 'rollup-plugin-vue'
import postcss from 'rollup-plugin-postcss'
import terser from '@rollup/plugin-terser'
import json from '@rollup/plugin-json'
import alias from '@rollup/plugin-alias'
import { nodeResolve } from '@rollup/plugin-node-resolve'
import commonjs from '@rollup/plugin-commonjs'
import typescript from '@rollup/plugin-typescript'
export default [
{
input: 'src/components/index.ts',
output: [
{
format: 'esm',
file: 'dist/library.mjs'
},
{
format: 'cjs',
file: 'dist/library.js'
}
],
plugins: [
vue({
include: /.vue$/,
preprocessStyles: true,
css: true,
compileTemplate: true
}),
typescript({
tsconfig: 'tsconfig.rollup.json',
declaration: true,
declarationDir: 'dist/types',
rootDir: 'src',
exclude: ['**/__tests__', '**/*.test.ts']
}),
nodeResolve({
extensions: ['.js', '.ts', '.vue']
}),
commonjs(),
alias({
entries: [{ find: '@', replacement: 'src' }]
}),
json(),
postcss(),
terser()
],
external: ['vue']
}
]
</code>
import vue from 'rollup-plugin-vue'
import postcss from 'rollup-plugin-postcss'
import terser from '@rollup/plugin-terser'
import json from '@rollup/plugin-json'
import alias from '@rollup/plugin-alias'
import { nodeResolve } from '@rollup/plugin-node-resolve'
import commonjs from '@rollup/plugin-commonjs'
import typescript from '@rollup/plugin-typescript'
export default [
{
input: 'src/components/index.ts',
output: [
{
format: 'esm',
file: 'dist/library.mjs'
},
{
format: 'cjs',
file: 'dist/library.js'
}
],
plugins: [
vue({
include: /.vue$/,
preprocessStyles: true,
css: true,
compileTemplate: true
}),
typescript({
tsconfig: 'tsconfig.rollup.json',
declaration: true,
declarationDir: 'dist/types',
rootDir: 'src',
exclude: ['**/__tests__', '**/*.test.ts']
}),
nodeResolve({
extensions: ['.js', '.ts', '.vue']
}),
commonjs(),
alias({
entries: [{ find: '@', replacement: 'src' }]
}),
json(),
postcss(),
terser()
],
external: ['vue']
}
]