I'm only importing discord-rpc and only have main.ts
. Also using rollup plugins typscript and node-resolve.
main.ts
import:
const { Client } = require("discord-rpc");
package.json
scripts and dependencies:
{
"main": "main.js",
"scripts": {
"dev": "rollup --config rollup.config.js -w",
"build": "rollup --config rollup.config.js"
},
"devDependencies": {
"@rollup/plugin-commonjs": "^15.1.0",
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^9.0.0",
"@rollup/plugin-typescript": "^6.0.0",
"@types/node": "^14.14.2",
"obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master",
"rollup": "^2.32.1",
"tslib": "^2.0.3",
"typescript": "^4.0.3"
},
"dependencies": {
"discord-rpc": "^3.1.4"
}
}
rollup.config.js
:
import typescript from '@rollup/plugin-typescript';
import {nodeResolve} from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
export default {
input: [
'main.ts',
],
output: {
dir: '.',
sourcemap: 'inline',
format: 'cjs',
exports: 'default'
},
external: ['obsidian', 'electron'],
plugins: [
typescript(),
commonjs(),
nodeResolve({browser: true}),
]
};
Do I need to use an alternative to rollup.js?
Edit:
I tried changing const { Client } = require("discord-rpc");
to import { Client } from "discord-rpc";
but I still get Error: Cannot find module 'discord-rpc'
Edit 2: Keeping this change:
import { Client } from "discord-rpc";
I edited rollup.config.js
:
import typescript from '@rollup/plugin-typescript';
import {nodeResolve} from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
export default {
input: [
'main.ts',
],
output: {
dir: '.',
sourcemap: 'inline',
format: 'cjs',
exports: 'default'
},
external: ['obsidian', 'electron'],
plugins: [
nodeResolve({browser: true}), // Moving this up.
typescript(),
commonjs(),
]
};
No longer get this Error in runtime:
Error: Cannot find module 'discord-rpc'
But I get this during build:
(!) Unresolved dependencies
https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency
timers (imported by node_modules/discord-rpc/src/client.js, timers?commonjs-external)
events (imported by node_modules/discord-rpc/src/client.js, events?commonjs-external, node_modules/discord-rpc/src/transports/ipc.js, node_modules/discord-rpc/src/transports/websocket.js)
It also doesn't work as expect but I'm not sure if that's due to my code or rollup...
Ok so I solved the problem!
I had to move a few things around:
rollup.config.js
:package.json
:main.ts
import: