只使用dist文件夹的子文件夹发布npm包

13

我的软件包组织结构如下:

mypackage
   |--- src
   |     |--- component1
   |     `--- component2
   `--- dist
         |--- component1
         `--- component2

当我将它发布到npm时,我希望它看起来像下面这样,没有 dist 目录:

mypackage
   |--- component1
   `--- component2

我的想法是,当我从这个包中导入时,导入应该像这样:

import component1 from 'mypackage/component1'

无法完成此操作(请注意额外的dist):

import component1 from 'mypackage/dist/component1'

如何实现这一点?我目前在我的package.json文件中有一个文件部分,其中包含额外的dist,并且我不想要它:

"files": [
  "dist/"
]
1个回答

22

根据如何仅发布特定文件夹的内容中的答案,这可能很有用:

npm run build
cp package.json ./dist
# or, if you need to have package.json "main" entry different,
# e.g. for being able to use `npm link`, you need to replace "main" 
value:
# sed 's#"main": "./dist/index.js"#"main": "./index.js"#' package.json > ./dist/package.json
cd ./dist
npm publish

只需将你的 package.json 复制到 dist/ 文件夹中,然后在 dist/ 文件夹中运行 npm publish 命令即可。


2
谢谢!这应该在npm的文档中记录。 - Omar Dulaimi
虽然这种方法对我不起作用,但通过在我的 tsconfig.json 中以编程方式更改 outDir 条目从 ./dist/ 更改为 ./ 就解决了问题! - Thijmen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接