运行ndk-build命令时,出现以下错误:
Android NDK: Could not find application project directory !
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
Run Code Online (Sandbox Code Playgroud)
我的Android.mk文件的内容:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := FRE
LOCAL_SRC_FILES := FlashRuntimeExtensions.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := NativeQCAR
LOCAL_SRC_FILES := main.c
LOCAL_SHARED_LIBRARIES := FRE
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
添加以下行没有帮助:
NDK_PROJECT_PATH = C:/Users/Wessel/Dropbox/workspace/eclipse/NativeQ
Run Code Online (Sandbox Code Playgroud) 我想在中间件类中获取当前I路由的名称.以前(在Slim 2.*中)你可以像这样获取当前路线:
$route = $this->app->router->getCurrentRoute();
但是这个功能已经在3.0版的Slim中被删除了.我在以下__invoke方法中找到了以下代码Slim\App:
// Get the route info
$routeInfo = $request->getAttribute('routeInfo');
/** @var \Slim\Interfaces\RouterInterface $router */
$router = $this->container->get('router');
// If router hasn't been dispatched or the URI changed then dispatch
if (null === $routeInfo || ($routeInfo['request'] !== [$request->getMethod(), (string) $request->getUri()])) {
$request = $this->dispatchRouterAndPrepareRoute($request, $router);
$routeInfo = $request->getAttribute('routeInfo');
}
Run Code Online (Sandbox Code Playgroud)
这表明,当前的路线被存储为属性routeInfo的Request.但似乎我的自定义中间件类在设置属性之前被调用(通过该$this->dispatchRouterAndPrepareRoute($request, $router);方法).因为呼叫$request->getAttribute('routeInfo')解决了NULL.
所以我的问题是; 如何从中间件函数/类中获取当前路由(或路由名称)?
或者我应该只复制上面的代码Slim\App?
我正在创建一个使用自定义Flex环境在Google App Engine上运行的应用程序。此应用程序使用几个(相对)符号链接,这些符号链接指向项目中的其他目录。但是在部署应用程序时,这些符号链接会以某种方式被忽略。
gcloud在构建和部署应用程序之前,该工具似乎将源上下文(即我项目中的所有文件)发送给了Google容器构建器:
$ gcloud --project=my-project --verbosity=info app deploy
(...)
Beginning deployment of service [default]...
Building and pushing image for service [default]
INFO: Uploading [/tmp/tmpZ4Jha_/src.tgz] to [eu.gcr.io/my-project/appengine/default.20171212t160803:latest]
Started cloud build [some-uid].
Run Code Online (Sandbox Code Playgroud)
如果提取.tgz文件的内容,则可以看到项目中的所有文件和目录都在那里。除指向目录的符号链接外(但包括指向文件的符号链接)。因此,源上下文缺少到目录的所有符号链接。
不使用符号链接不是一种选择,那么有人知道如何在源上下文中将符号链接包括到发送给google的目录吗?
尽管我认为这无关紧要,但这是其中的内容app.yaml:
env: flex
runtime: custom
runtime_config:
document_root: docroot
manual_scaling:
instances: 1
resources:
cpu: 2
memory_gb: 2
disk_size_gb: 10
Run Code Online (Sandbox Code Playgroud) 我想使用Traefik的多个docker-compose项目作为反向代理.按照文档后我创建了两个docker-compose文件; 一个用于Traefik,另一个用于具有2个"whoami"容器的示例项目.
这适用于后端,但似乎Traefik为每个运行容器创建了一个前端.因此,除了2个whoami容器的1个前端之外,我还定义了两个前端:"frontend-Host-whoami-localhost-0"和"frontend-Host-whoami-localhost-1".
如果我扩展whoami服务(通过在docker-compose.yaml文件中复制它们的定义,或者使用docker-compose scale whoami=10),Traefik将创建更多的前端.
我只想要一个"Host:whoami.localhost"规则的前端,该规则指向一个后端,其中连接了多个正在运行的容器.我怎样才能做到这一点?
traefik.toml:
defaultEntryPoints = ["http"]
[web]
address = ":8080"
[entryPoints]
[entryPoints.http]
address = ":80"
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "localhost"
Run Code Online (Sandbox Code Playgroud)
docker-compose.yaml(对于traefik):
version: "2"
services:
traefik:
container_name: traefik
image: traefik
networks:
- webgateway
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.toml:/traefik.toml
labels:
traefik.backend: web
traefik.frontend.rule: Host:monitor.localhost
networks:
webgateway:
driver: bridge
Run Code Online (Sandbox Code Playgroud)
WHOAMI /泊坞窗,compose.yaml:
version: "2"
services:
whoami:
image: emilevauge/whoami
networks:
- webgateway
labels:
traefik.backend: whoami
traefik.frontend.rule: Host:whoami.localhost
whoami_2:
image: emilevauge/whoami
networks: …Run Code Online (Sandbox Code Playgroud) 我有一个包含两个阶段的 Dockerfile;第一阶段从源代码构建反应应用程序,第二阶段复制构建并添加 NGINX 服务器:
FROM kkarczmarczyk/node-yarn as builder
COPY . /workspace
RUN set -ex \
yarn global add create-react-app \
&& yarn install \
&& GENERATE_SOURCEMAP=false yarn build
FROM nginx:mainline-alpine
COPY ./nginx-default.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /workspace/build /var/www/html/
Run Code Online (Sandbox Code Playgroud)
我也在使用 gitlab-ci,我希望有多个阶段:构建、测试和部署。但我不知道如何拆分构建和测试阶段,因为我使用的是多阶段 Dockerfile。问题是所有 JS 测试(针对 React)都需要在“纱线构建”执行之前运行,并且构建被复制到秒级 docker 阶段。
一个解决方案可能是yarn test在yarn build运行之前执行。但我真的很想有一个单独的测试 gitlab-ci 阶段。
这可能吗?或者我是否需要将我的 Dockerfile 阶段拆分为多个 Dockerfile?
我正在尝试将 Typescript 项目重构为具有多个包(带有纱线工作区)的 monorepo。在其中一个包 ( packages/compiler) 中,我安装了 jest,并进行了几次测试。他们以前工作过,但重构后我收到以下错误消息:
找不到名称“它”。您是否需要安装类型定义?
测试跑者?尝试
npm i @types/jest或npm i @types/mocha
我似乎无法弄清楚如何让开玩笑起作用。
我开玩笑地在所有测试的包中安装了“本地”。但是如果我node_modules/在 a 之后检查yarn install,我只能看到一个.bin目录packages/compiler/node_modules,并且我可以看到 (ts-)jest 安装在“root”中node_modules。我认为我需要确保 jest 安装在我的包 ( packages/compiler/node_modules)的 node_modules 中,而不是安装在根目录中。但我似乎无法弄清楚如何做到这一点(nohoist根 package.json 中的选项不起作用)。
所以我的问题是如何让 jest 在我的子包中工作?
根package.json:
{
"name": "pannenkoekjs",
"private": true,
"workspaces": [
"packages/*"
],
"devDependencies": {
"lerna": "^3.18.4"
}
}
Run Code Online (Sandbox Code Playgroud)
该package.json在packages/compiler:
{
"name": "@pannenkoekjs/compiler",
"dependencies": {
"typescript": "^3.6.2"
}, …Run Code Online (Sandbox Code Playgroud) 在 Typescript 中,我创建了一个具有共享“type”属性的联合类型:
export type Instruction =
| { type: 'local.set', name: string, value: Expression }
| { type: 'i32.const', value: number }
| { type: 'i32.add', left: Expression, right: Expression };
Run Code Online (Sandbox Code Playgroud)
我想创建一个对象,其中“type”属性的值作为键,函数作为值。就像这样:
const visitor: Record<Instruction['type'], (instruction: Instruction) => void> = {
'local.set': (instruction) => {},
'i32.const': (instruction) => {},
'i32.add': (instruction) => {},
}
Run Code Online (Sandbox Code Playgroud)
但“指令”参数的输入对我来说太通用了。我想知道我可以通过函数内的指令访问哪些属性。那么如何创建一个Record类似的类型,其中包含类型中“type”属性的所有键Instruction,以及它们各自的Instruction类型作为值?
换句话说; 如果我这样做,Typescript 可以推断出类型:
const instruction: Instruction = { type: 'local.set' }; // TS knows about the missing 'name' …Run Code Online (Sandbox Code Playgroud)