构建时 /dist 中缺少从 /src 手动创建的子文件夹

Manually created subfolder from /src is missing in /dist when building

我在 /src 中创建了一个名为 /libs 的子文件夹。当我 运行 npm run build 时,子文件夹不包含在 /dist.

我假设我必须修改构建脚本?如果是,那会是哪个文件?

编辑 #1

这一切都源于试图从我的控制器中获取位于 src/libs 中的自定义模块。我尝试了多种模式:../libs/module_name./libs/module_name。让它工作的唯一方法是从根开始硬编码路径(即 /home/me/app/src/libs/module_name)。

如果我这样做:console.log(__dirname) 在尝试从 /lib 请求模块的控制器中,我看到对 /dist 的引用。我去调查了 /dist/libs 不在那里。

在同事的帮助下,我想通了。在 package.json 中,我附加了一个复制命令,将 libs 文件夹放入构建部分的 dist

"scripts": {
    ...
    "build": "lb-tsc es2017 --outDir dist && cp -r src/libs dist",
    ...
}

lb-tsc 是 TypeScript 编译器 (tsc) 的精简包装器,您可以在 loopback-next:packages/build/bin/compile-package.js

中找到源代码

在其他选项中,它提供了一个新标志 --copy-resources 以将 non-TypeScript 个文件从 src 复制到 dist。我认为它可能与您的 cp -r 解决方案同样有效(如果不是更好的话)。

"scripts": {
    ...
    "build": "lb-tsc es2017 --outDir dist --copy-resources"
    ...
}

就个人而言,我会使用不同的解决方案:

  • 仅对要编译的 TypeScript 文件使用 src
  • 将 JavaScript 源文件和其他文件放入不同的目录,例如lib(而不是 src/lib)。