构建时 /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
)。
我在 /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
)。