所以我正在开发一个 Flutter 应用程序。我有一个单例 GameManager,如下所示:
class GameManager extends ChangeNotifier {
static final GameManager _singleton = GameManager._internal();
factory GameManager() {
return _singleton;
}
GameManager._internal();
}
Run Code Online (Sandbox Code Playgroud)
在我的入口点 main.dart 中:
@override
void initState() {
super.initState();
GameManager().connect(isConnected: () {
DynamicLinksService().initDynamicLinks();
});
}
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider<GameManager>(create: (context) => GameManager()),
],
...
}
Run Code Online (Sandbox Code Playgroud)
所以我有一个名为 backend 的 Typescript 项目,其 package.json 中具有这样的依赖关系:
"dependencies": {
"@the-couple-game/helpers": "^1.0.0",
}
Run Code Online (Sandbox Code Playgroud)
助手(也是 Typescript)位于另一个文件夹中,其 package.json 如下所示:
{
"name": "@the-couple-game/helpers",
}
Run Code Online (Sandbox Code Playgroud)
因此,运行lerna bootstrap应该链接两者,并在后端的 node_modules 中安装@the- Couple-game/helpers,这是在本地执行的。
但是,使用 Codebuild 使用下面的 buildspec.yml 执行相同的操作(使用 --no-ci 因为我不想要 npm ci)不会在后端的 node_modules 中添加 @the- Couple-game/helpers 。因此,如果我运行后端的转换后的index.js,它会抱怨缺少模块。
version: 0.1
phases:
install:
commands:
- npm install -g lerna
pre_build:
commands:
- lerna bootstrap --no-ci --concurrency 4
build:
commands:
- lerna run build --concurrency 4
artifacts:
files:
- "**/*"
Run Code Online (Sandbox Code Playgroud)
目前,我必须在部署到 CodeDeploy 后手动执行 lerna 引导程序(使用从 appspec.yml 调用的脚本),以便它安装缺少的模块,但 Codebuild 不应该覆盖该部分吗? …
aws-code-deploy aws-codepipeline lerna aws-codebuild aws-code-deploy-appspec