我正在进行esbuild配置,并希望在构建测试项目时将文件(manifest.json)复制到特定的文件夹中。我在我的复制插件中加入了esbuild-config.mjs
import esbuild from "esbuild";
import process from "process";
import builtins from 'builtin-modules'
import copy from 'esbuild-plugin-copy';
const prod = (process.argv[2] === 'production');
const baseConfig = {
// ...
};
const testVaultPluginFolder = 'test-vault/.obsidian/plugins/obsidian-sample-plugin/';
const devConfig = {
...baseConfig,
outfile: testVaultPluginFolder + 'main.js',
plugins: [
copy({ // <- This line causes the problem
assets: [
{ from: ['manifest.json'], to: [testVaultPluginFolder] }
]
})
]
};
const prodConfig = {
...baseConfig,
outfile: 'main.js',
};
if (prod){
esbuild.build(prodConfig).catch(() => process.exit(1));
} else {
esbuild.build(devConfig).catch(() => process.exit(1));
}我甚至可以将Ctrl + Click放入VS代码中的复制函数中。
然后,当我运行它时,它告诉我,复制不是一个函数:
$ npm run dev
> obsidian-sample-plugin@1.1.0 dev C:\Workspaces\RNSS-Sample\obsidian-sample-plugin
> node esbuild.config.mjs
file:///C:/Workspaces/.../obsidian-sample-plugin/esbuild.config.mjs:59
copy({
^
TypeError: copy is not a function
at file:///C:/Workspaces/.../obsidian-sample-plugin/esbuild.config.mjs:59:3
at ModuleJob.run (internal/modules/esm/module_job.js:170:25)
at async Loader.import (internal/modules/esm/loader.js:178:24)
at async Object.loadESM (internal/process/esm_loader.js:68:5)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! obsidian-sample-plugin@1.1.0 dev: `node esbuild.config.mjs`
npm ERR! Exit status 1编辑:进一步研究
我发现了一个问题,复制(到剪贴板)函数产生了相同的错误:devtools控制台:在youtube上复制不是一个函数
问题是,DOM包含另一个名为copy的元素,它不是函数。尽管我不在浏览器中,但我尝试重命名导入。
import copyIsADamnFunction from 'esbuild-plugin-copy';
plugins: [
copyIsADamnFunction({
assets: [
{ from: ['manifest.json'], to: [testVaultPluginFolder] }
]
})
]同样的结果:
TypeError: copyIsADamnFunction is not a function
at file:///C:/Workspaces/.../obsidian-sample-plugin/esbuild.config.mjs:59:3当我移除导入时
ReferenceError: copy is not defined
at file:///C:/Workspaces/.../obsidian-sample-plugin/esbuild.config.mjs:58:11所以进口品是进口的。VS代码告诉我鼠标上的副本是一个函数,其中一个可选参数返回一个esbuild.Plugin
(alias) copy(options?: Partial<Options>): esbuild.Plugin
import copy如果我编写copy. VS代码,甚至会为我提供apply、arguments、bind和call等属于Function.prototype的代码完成功能。copy怎么可能不是一个函数?
发布于 2022-05-17 15:52:59
显然这是插件中的一个bug。它应该在一个实际的版本中修复。
除此之外,这线程中的某个人提供了一个为我工作的工作方法:
而不是
import copy from 'esbuild-plugin-copy';使用
import { copy } from "esbuild-plugin-copy";https://stackoverflow.com/questions/71218166
复制相似问题