【发布时间】:2021-09-16 12:47:46
【问题描述】:
我正在开发一个 vscode 扩展,并正在使用 esbuild 进行捆绑/缩小。我想使用jsonc-parser NPM 模块。当我这样做时,esbuild 运行正常,但无法加载扩展,并给出错误“激活扩展失败:找不到模块 './impl/format'”。
我可以在比整个 vscode 扩展更小的示例中重现这一点,请参见以下内容:
主文件
import * as jsonc from 'jsonc-parser'
const example = '// Some comment\n{"a":1,"b":2}'
console.log(`Parsing ${example}`)
const errors = []
const mexample = jsonc.parse(example, errors)
console.log(`Result: ${JSON.stringify(mexample, null, 2)}`)
console.log(`Errors: ${JSON.stringify(errors)}`)
package.json的相关位
"scripts": {
"run-bundle": "node out.js",
"bundle": "esbuild index.ts --bundle --platform=node --outfile=out.js"
},
"dependencies": {
"jsonc-parser": "^3.0.0"
},
"devDependencies": {
"esbuild": "^0.12.28"
}
在捆绑的 out.js 中我可以看到
var formatter = require2("./impl/format");
var edit = require2("./impl/edit");
var scanner = require2("./impl/scanner");
var parser = require2("./impl/parser");
所以看起来esbuild 没有选择这些“内部依赖项”进行捆绑。
我在tsconfig.json 和package.json 中尝试了一些选项,但没有成功。
【问题讨论】:
标签: typescript esbuild