typescript - 在 VSCode 中调试 lerna-typescript 项目

标签 typescript debugging visual-studio-code lerna

我正在尝试使用 lerna+typescript 构建一个 monorepo,我使用这个 repo 作为开始:https://github.com/Izhaki/mono.ts

我想要实现的是调试 visual studio 代码中的代码。我试过像这样添加 launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Debug",
            "preLaunchTask": "npm: build",
            "program": "${workspaceFolder}/packages/line/src/index.ts",
            "sourceMaps": true,
            "smartStep": true,
            "internalConsoleOptions": "openOnSessionStart",
            "outFiles": [
                "${workspaceFolder}/packages/line/dist/**/*.js"
            ]
        }
    ]
}

我在导入和使用时遇到了一些错误:

/Users/davidericci/Desktop/mono.ts-master/packages/line/dist/index.js:1
(function (exports, require, module, __filename, __dirname) { import { getDistance } from '@geo/point';
                                                                     ^

SyntaxError: Unexpected token {

所以我在 tsconfig.build.json(包内)中进行了更改:

"target": "es2017",
"module": "commonjs",  

tsconfig.base.json 中(总是在包中):

{
  "compilerOptions": {
    "lib": ["es2015", "es2016", "dom", "es2017", "es6", "es5"],
    "noUnusedLocals": true
  }
}

但我仍然得到:

internal/modules/cjs/loader.js:605
    throw err;
    ^

Error: Cannot find module '@geo/point'

作为错误,我认为是因为在代码内部(即使在 JS 代码中)导入仍然指向 typescript 。我在这里可能是错的。

所有其他设置都是该项目的默认设置。

可以是 tsconfig-paths 吗?或者只是 launch.json 中的一些设置?

非常感谢各位

最佳答案

不幸的是,我不得不放弃使用 https://github.com/Izhaki/mono.ts 的想法

使用标准配置文件,我成功地使用 lerna 进行调试,甚至使用无服务器离线。

这是我的文件:

launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Debug ms-locations",
      "preLaunchTask": "npm: lerna-tsc",
      "program": "${workspaceFolder}/packages/ms-locations/lib/sample.js",
      "cwd": "${workspaceFolder}",
      "outFiles": [
        "${workspaceFolder}/packages/ms-locations/**/*.js"
      ],
      "protocol": "inspector",
    }

tsconfig

{
"compilerOptions": {
    /* Basic Options */
    "target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
    "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
    "lib": [
        "es6"
    ], /* Specify library files to be included in the compilation. */
    "declaration": true, /* Generates corresponding '.d.ts' file. */
    "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */
    "sourceMap": true, /* Generates corresponding '.map' file. */
    /* Strict Type-Checking Options */
    "strict": false, /* Enable all strict type-checking options. */
    "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
    /* Additional Checks */
    "noUnusedLocals": true, /* Report errors on unused locals. */
    "noUnusedParameters": true, /* Report errors on unused parameters. */
    "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
    "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
    "incremental": true
},
"exclude": [
    "node_modules",
    "**/*.spec.ts",
    "packages/ms-api/test/*.ts"
]

在我的包文件夹中,如果你需要使用无服务器 这是 tsconfig

{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
  "outDir": "./lib",
  "moduleResolution": "node",
  "noUnusedLocals": false,
  "noUnusedParameters": false,
      "allowSyntheticDefaultImports": true,
  "sourceMap": true,
      "target": "es2017",
  "esModuleInterop": true,
      "incremental": false
  },
  "include": [
      "./src"
  ]
}

即使这个问题不是完全令人信服,我也会将其标记为可接受的答案,但这是我的解决方案。

希望对某人有帮助

关于typescript - 在 VSCode 中调试 lerna-typescript 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56260686/

相关文章:

javascript - ng-select 添加带有异步搜索的新选项

typescript - 在映射操作期间创建时,字符串文字联合类型无法编译

javascript - 如何在不使用其模块名称的情况下为类创建新对象?

ubuntu - 在 Ubuntu 上构建 vscode 时找不到包 'xkbfile'

visual-studio-code - 如何更改 VS Code 颜色选择器颜色代码类型?

visual-studio-code - Visual Studio 代码颜色主题未采用

typescript - TypeScript : Convert type 'a | b' to 'a' based on typeof

php - 如何在 PHP 中写入控制台?

c# - Visual Studio 2012 "Unable to start debugging"

debugging - 在调试器中暂停 Flutter 应用程序并等待在 IntelliJ 中点击