gpt4 book ai didi

javascript - 带 babel 的 NPM 7 工作区 - 在工作区之间导入

转载 作者:行者123 更新时间:2023-12-05 06:50:13 24 4
gpt4 key购买 nike

我在使用 NPM 7 工作区和 Babel 时偶然发现了一个问题,我无法找到能够从 src/import 的最佳方式> 在开发期间,但在生产期间使用 dist/

为我糟糕的解释道歉,我只做一个例子(为了简洁起见,这不包括配置文件等):

我的项目结构是这样的:

- /
- lambdas/lambda-a
- src/
- package.json
- packages/package-a
- src/
- package.json
- package.json

我在 packages/package-a/package.json 中有我的 main 字段,如下所示:

{
...
"main": "src/index.js",
...
}

这意味着我可以在 lambdas/lambda-a/src/index.js 中从 packages/package-a 导入内容:

import { thing } from '<package-a>'

但是,通过将 main 字段指向 src/index.js,这在生产中是行不通的,如果我更改 main 字段到 dist/index.js 我不能再在开发过程中导入 lambdas/lambda-a 而不是在每次更改后运行构建。

有人有解决办法吗?或者,更有可能的是,任何人都可以指出我在哪里是布偶吗?

最佳答案

我使用的解决方法是在构建之前替换 src/index.js 并在构建/打包完成后再次替换它。这既不优雅也不是“你应该怎么做”(AFAIK),但它在一个小项目中对我有用。

我使用 npe因为它是轻量级的,但那里有类似(或更强大)的软件包。

示例(packages/package-a/package.json):

...
"devDependencies": {
"npe": "^1.1.4"
},
"scripts": {
"build:before": "npe main dist/index.js'",
"build": "(npm run build:before) && (if exist dist rmdir /s /q dist) && (babel src -d dist --copy-files) && (npm pack) && (npm run build:after)",
"build:after": "npe main src/index.js",
},
...

但我还在寻找更“官方”的方式......

关于javascript - 带 babel 的 NPM 7 工作区 - 在工作区之间导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66457243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com