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

时间:2019-06-04 13:11:58

标签: node.js loopbackjs

我在/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不在那儿。

2 个答案:

答案 0 :(得分:2)

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

中找到源代码。

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

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

我个人会使用其他解决方案:

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

答案 1 :(得分:0)

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

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