,javascript,node.js,typescript,npm,npm-install"/>

首页 > 解决方案 > 在“npm 链接”和“npm i”之后" 无法解析模块("main" 和 "types" 在 package.json 中正确)

问题描述

我的package.json文件

{
  "name": "ts-logger",
  "main": "dist/index.js",
  "types": "dist/index.d.ts",
  "scripts": {
    "install": "tsc"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/vkrenta/ts-logger.git"
  },
   "devDependencies": {
    "typescript": "^4.0.2",
    "@types/node": "^14.6.4"
  },
  "dependencies": {}
   ...
}

我的tsconfig.json

{
  "compilerOptions": {
     ...
    "outDir": "./dist",
    "target": "es5",
     ...
    "rootDir": "./"
  },
  "exclude": ["node_modules", "dist"]
}

我试图将它推送到 github 并运行npm link.

在我创建了另一个 npm 项目之后,然后require('ts-logger')import {Logger} from 'ts-logger'得到node .了 npm 无法解析模块的日志

标签: javascriptnode.jstypescriptnpmnpm-install

解决方案


问题出在package.json - 我刚刚交换了devDependenciesand dependencies,因为 typescript 是将代码从 git 编译到 dist 文件夹的依赖项。

"dependencies": {
    "typescript": "^4.0.2",
    "@types/node": "^14.6.4"
  },
  "devDependencies": {}

UPD

此外,我在包中启动了我的tsconfig.json"target":"es5",但新项目使用"target":"es2015". 因此,这意味着您的包目标必须比项目中的目标更新(或相同)(最好是"target":"ESNext")。


推荐阅读