首页 > 解决方案 > 构建时 /dist 中缺少从 /src 手动创建的子文件夹

问题描述

我创建了一个/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不在那里。

标签: node.jsloopbackjs

解决方案


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

在其他选项中,它提供了一个新标志--copy-resources来将非 TypeScript 文件从复制srcdist. 我认为它可能与您的解决方案一样好(如果不是更好)cp -r

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

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

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

推荐阅读