aidenlx / mx-bili-plugin

MIT License
80 stars 8 forks source link

开发环境配置不起来 #32

Open GeekSquirrel opened 1 year ago

GeekSquirrel commented 1 year ago

开发环境

node v18.14.0

操作流程

git clone ...
npm i
npm run dev

遇到的问题

1. rollup报错,不认识typescript文件类型。

[!] Error: Unexpected token (Note that you need plugins to import files that are not JavaScript)
node_modules/assert-never/index.ts (26:33)
24:  *    }
25:  */
26: export function assertNever(value: never, noThrow?: boolean): never {
                                     ^
27:   if (noThrow) {
28:     return value
Error: Unexpected token (Note that you need plugins to import files that are not JavaScript)
    at error (/Users/squirrel/Projects/Obsidian/ObsidianPlugins/.obsidian/plugins/mx-bili-plugin/node_modules/rollup/dist/shared/rollup.js:198:30)
    at Module.error (/Users/squirrel/Projects/Obsidian/ObsidianPlugins/.obsidian/plugins/mx-bili-plugin/node_modules/rollup/dist/shared/rollup.js:12560:16)
    at Module.tryParse (/Users/squirrel/Projects/Obsidian/ObsidianPlugins/.obsidian/plugins/mx-bili-plugin/node_modules/rollup/dist/shared/rollup.js:12937:25)
    at Module.setSource (/Users/squirrel/Projects/Obsidian/ObsidianPlugins/.obsidian/plugins/mx-bili-plugin/node_modules/rollup/dist/shared/rollup.js:12842:24)
    at ModuleLoader.addModuleSource (/Users/squirrel/Projects/Obsidian/ObsidianPlugins/.obsidian/plugins/mx-bili-plugin/node_modules/rollup/dist/shared/rollup.js:22090:20)

这个在把@rollup/plugin-typescript包升级到最新的11.0.0版本,并且在tsconfig.json中加入“rootDir: 'src'”之后,似乎是解决了问题,能编译出main.js

2. 插件不可用

obsidian打不开编译好的main.js,报错如下

Plugin failure: mx-bili-plugin TypeError: require$$0$1 is not a function
    at Object.enableStreamingAPI (plugin:mx-bili-plugin:14972:19)
    at eval (plugin:mx-bili-plugin:14997:11)
    at anonymous (plugin:mx-bili-plugin:15005:2)
    at e.<anonymous> (app.js:1:1072034)
    at app.js:1:235836
    at Object.next (app.js:1:235941)
    at a (app.js:1:234680)

这个问题应该跟obsidian关系不大,还是编译出现了问题,好像与iconv-lite这个库有关,我找到了相关issue,但没解决这个问题。

GeekSquirrel commented 1 year ago

部分解决了,在没有更好的方案前,必须用老版本的express@14.15.5 刚才新起了一个obsidian最新的项目模版,只跑一个express server也会报第二个错。 然后我就在以“obsidian express”为关键词找,几乎是有且仅有一个相关的结果,是一个youtube视频 根据视频所说,新版本的obsidian(1.0.3及以后)上用express新版本就会有类似上述第二个错误,他本人在网上找了好久也没找到原因。不过后来他发现了obsidian-advanced-slides这个项目用到了express,根据package.json,项目作者把express的版本写死在“14.15.5”,@types/express用的是“14.11.1”。 经过测试,确实可用。