Javascript NPM包导入如何解决?

Javascript NPM包导入如何解决?,javascript,typescript,webpack,yarnpkg,monorepo,Javascript,Typescript,Webpack,Yarnpkg,Monorepo,我有一个带有lerna的monorepo、纱线工作区和以下结构: - packages - a_webpack - src - index.ts - dist - main.js - main.css - b_tsc - src - indes.ts - dist - index.js 两个包a_网页包和b_tsc都将被另一个包c使用 在b_tsc上,我运行tsc编译到它的dist文件夹中 在

我有一个带有lerna的monorepo、纱线工作区和以下结构:

- packages
  - a_webpack
    - src
      - index.ts
    - dist
      - main.js
      - main.css
  - b_tsc
    - src
      - indes.ts
    - dist
      - index.js
两个包
a_网页包
b_tsc
都将被另一个包
c
使用

  • b_tsc
    上,我运行
    tsc
    编译到它的dist文件夹中
  • a_webpack
    上,我运行
    webpack
    执行相同的操作
我主要使用webpack,因为我可以在dist中获得一个单独的.css文件,该文件可以导入

当我在包装
c
中导入
b\u tsc
时,类似:

import { something } from 'b_tsc'
一切正常

当我这样做时:

 import 'b_tsc/dist/main.css'
这是有效的

然而,当我尝试:

import { something } from 'a_webpack'
我得到:

Module not found: Can't resolve 'a_webpack'
  • 问题: 即使我将webpack的输出更改为generate
    dist/index.js
    ,它也不起作用。我做错了什么

  • 一般问题 当像上面所看到的那样导入时,编译器如何知道它需要查看包中的
    dist/main.js
    或任何其他入口点

  • 我想出来了: 入口点在
    package.json
    s
    main
    属性中指定


    这为我解决了导入问题。

    从技术上讲,在运行时解析导入的方式取决于您的模块加载器。如果您使用的是webpack,webpack将控制模块的分辨率。请投票以缓解标签混淆。