我有用于节点开发的VSCode。
我有一个名为“实用程序”的通用代码库,它位于文件夹下面。
在工作区文件夹下有其他应用程序文件夹,如
所有这些应用程序都需要在实用程序中使用这些函数。
我不想为这3个应用程序中的每一个创建实用程序文件夹。
但是,如何将这3个应用程序链接到实用程序文件夹,以便我只需要在一个地方使用主实用程序?
附件是launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder}/src/app.js"
}
]
}P.S.:稍后我还需要将应用程序部署到AWS,如何将这个实用程序文件夹包含在我的serverless.yml中,以便在部署代码时也包括这个文件夹?
谢谢。
发布于 2020-05-03 04:23:58
我做了一些研究,也询问了周围的几个人,看起来最常见的建议是npm的通用代码,并包含在package.json中。
然而,npm是一个开放的平台,我不想通过公共的方式访问我的代码。如果我需要成为一个私人存储库,每月要交一笔费用。
最后,在VSCode中创建一个单独的文件夹来存储所有公共代码,然后在.vscode目录下创建一个名为tasks.json的任务,其内容如下:
{
"version": "2.0.0",
"tasks": [
{
"label": "copy_utility_source",
"type": "shell",
"command": "cp -R ../../utility/src/ ./src/"
}
]
}然后,在我的应用程序launch.json中,我包含以下代码:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch applicationService",
"type": "node",
"console": "integratedTerminal",
"preLaunchTask": "copy_utility_source",
"request": "launch",
"program": "${workspaceFolder}/src/app.js",
"cwd": "${workspaceFolder}/src"
}
]
}通过这样做,我只需要在一个地方维护公共代码,而公共代码将自动部署到正在启动的应用程序中。
发布于 2020-05-02 10:23:09
您只需要从utils导出所需的函数,然后将它们导入到不需要复制代码的服务中。此外,如果你的模块是你自己的,它会在你自己的模块自动部署的时候,从库中提取你需要的任何代码,不需要做任何额外的事情。(对于节点模块,只需执行以下操作:npm install 'the-node-module'或包含在package.json中,并首先使用npm安装)
如果您使用webpack或browserify来传输/捆绑您的代码,您可以使用导出/导入语法(请记住,如果使用aws SAM本地cli调试lambdas --我肯定会推荐这样做),使用require语法设置稍微容易一些,因此要从utils文件夹导出模块/函数,可以使用:
const myUtilFunc = () => {return 'some utilFunc code here'}; module.exports = myUtilFunc;
当将该函数导入到您的服务中时,请使用:const myUtilFunc = require('../common/util');或根据导出的内容使用const {myUtilFunc} = require('../common/util')对其进行重构
https://stackoverflow.com/questions/61555506
复制相似问题