小编Joh*_*man的帖子

如何在Chrome调试器中检查JavaScript函数返回值?

来自gdb,它会在完成时打印函数的返回值.有没有办法从Chrome调试器获取此信息而不更改正在调试的源?

javascript google-chrome google-chrome-devtools

49
推荐指数
3
解决办法
1万
查看次数

如果我使用gzip压缩的JavaScript文件,Chrome和Firefox都会出现非法的字符/令牌错误

我在MacBook上使用内置服务器.

说我的脚本是foo.js. 这适用于我的测试浏览器(Firefox 10,Chrome 17):

<script type="text/javascript" src="foo.js"></script>
Run Code Online (Sandbox Code Playgroud)

但是,如果我gzip文件,在将上面的行更改为此后,两个浏览器都会给我一个非法的令牌/字符错误:

<script type="text/javascript" src="foo.js.gz"></script>
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?类型是否需要更改或者其他什么?这种做法记录在哪里?每当我在网上看到它提到"压缩你的脚本!"时,没有人会提到你需要对链接做任何特别的事情.

javascript firefox gzip google-chrome

12
推荐指数
1
解决办法
5675
查看次数

无法使用Google Test,Clang和libc ++构建测试

我尝试使用以下CMake配置构建Google Test:

$ CMAKE_CXX_COMPILER="clang++" CMAKE_CXX_FLAGS="-std=c++11 -stdlib=libc++ -U__STRICT_ANSI__" cmake ../source
Run Code Online (Sandbox Code Playgroud)

构建显示CMake选择了正确的编译器,但我的编译器标志没有通过:

$ VERBOSE=1 make
...
/Users/jfreeman/local/bin/clang++    -I/Users/jfreeman/work/googletest/source/include -I/Users/jfreeman/work/googletest/source      -DGTEST_HAS_PTHREAD=1   -o CMakeFiles/gtest.dir/src/gtest-all.cc.o -c /Users/jfreeman/work/googletest/source/src/gtest-all.cc
...
/Users/jfreeman/local/bin/clang++    -I/Users/jfreeman/work/googletest/source/include -I/Users/jfreeman/work/googletest/source      -DGTEST_HAS_PTHREAD=1   -o CMakeFiles/gtest_main.dir/src/gtest_main.cc.o -c /Users/jfreeman/work/googletest/source/src/gtest_main.cc
Run Code Online (Sandbox Code Playgroud)

最终目标是我希望我的项目(使用Clang和libc ++构建)使用Google Test构建测试.这意味着我需要使用libc ++构建的Google Test.

c++ cmake clang googletest libc++

8
推荐指数
1
解决办法
4413
查看次数

为什么 Visual Studio Build Tools 安装程序会立即返回而不安装任何东西?

我正在尝试按照在容器中安装 Visual Studio Build Tools的示例进行操作。我试图弄清楚为什么安装没有像我预期的那样工作。我什至无法启动用我认为我想要的组件“构建”的容器;它无法运行,说The system cannot find the path specified.。我想启动基本映像并自己运行安装程序,这样我就可以看到发生了什么。这是我的开始:

FROM mcr.microsoft.com/dotnet/framework/sdk:4.8
ADD https://aka.ms/vs/16/release/vs_buildtools.exe C:\TEMP\vs_buildtools.exe
Run Code Online (Sandbox Code Playgroud)

然后我尝试手动运行示例中的命令:

C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache --installPath C:\BuildTools --add Microsoft.VisualStudio.Workload.VCTools
Run Code Online (Sandbox Code Playgroud)

此命令立即返回,不执行任何操作。到底是怎么回事?

windows cmd visual-studio docker visual-studio-2017-build-tools

6
推荐指数
1
解决办法
1213
查看次数

编译为 JavaScript 模块时如何重新导出从声明文件导入的类型声明?

我有一个用 TypeScript 编写的模块(演示源代码在这里:https://github.com/thejohnfreeman/bugs/tree/dece04bc4353bfc3f100c11fd38a4bb76cfcad67/parent)它有两个源文件:

// src/index.ts
export { String } from './types'
Run Code Online (Sandbox Code Playgroud)
// src/types.d.ts
export type String = string
Run Code Online (Sandbox Code Playgroud)

我可以构建parent为 JavaScript 模块:

yarn
npx tsc --project tsconfig.json --outDir out --module esnext
Run Code Online (Sandbox Code Playgroud)

它只编译.ts文件,并生成我所期望的,一个导出空对象的 JavaScript 模块:

// src/index.ts
export { String } from './types'
Run Code Online (Sandbox Code Playgroud)

但是,如果我更改.ts文件以导出文件中的所有内容.d.ts,如下所示:

// src/index.ts
export * from './types'
Run Code Online (Sandbox Code Playgroud)

然后我在输出中得到相同的重新导出语句:

// src/types.d.ts
export type String = string
Run Code Online (Sandbox Code Playgroud)

并且由于该.d.ts文件不产生.js输出,因此导入 './types'是悬空的。

这是一个错误吗?我希望 TypeScript 能够识别出重新导出的所有内容 './types'都是类型声明,并且该export …

javascript typescript es6-modules

6
推荐指数
0
解决办法
2834
查看次数

如何在仅订购先决条件内调用函数?

鉴于Makefile的这一点:

# for pattern matching
$(OBJDIR) := build

# just to see if a level of indirection will work
my_dir = $(dir $(1))

$(OBJECTS) : $(OBJDIR)/% : $(HEADERS) $(SRCDIR)/% | % $(dir %) $(call my_dir,%)
  @echo output-only = $|
Run Code Online (Sandbox Code Playgroud)

这是一个静态模式规则秩序,只有先决条件

考虑目标“ build / utility / debug.js”。上面规则的输出将是这样的:

output-only = utility/debug.js ./
Run Code Online (Sandbox Code Playgroud)
  • 第一个组件“ utility / debug.js”已从词干(%)中正确复制。
  • 第二个组件“ ./”是dir在先决条件列表中调用该函数的输出。
  • 第三个组件,一个空字符串,是my_dir在先决条件列表中调用my 函数的输出。

如果我更改my_dir为:

my_dir = $(1)
Run Code Online (Sandbox Code Playgroud)

输出保持不变。如果我将其更改为:

my_dir = "foo"
Run Code Online (Sandbox Code Playgroud)

然后使抱怨没有规则使“ foo”(这是预期的)。看来,这$(1)并没有限制到的调用中 …

makefile

5
推荐指数
1
解决办法
1484
查看次数

如何在Mac OS X上的Chrome调试器中重新加载页面而不是继续脚本?

我在Chrome 17.0,Mac OS X 10.6.8中使用调试器.

当我单步执行JavaScript时,有时我可以添加修复并希望立即中止并重新加载页面.当我不在调试器中时,F5不会重新加载页面,但Command-R会重新加载.然而,当我在调试器,命令-R执行"继续"(一拉F8),而不是重新加载页面.

有没有办法重新加载页面而不是继续在调试器中?

macos google-chrome google-chrome-devtools

5
推荐指数
1
解决办法
554
查看次数

如何让QUnit在异常上打印回溯?

当我的QUnit测试中发生异常时,它会说是

Died on test #n: message
Run Code Online (Sandbox Code Playgroud)

如何让它打印回溯或其他位置信息,以便我可以看到异常发生的位置?

javascript unit-testing qunit

5
推荐指数
1
解决办法
1353
查看次数

命名模式和类型推断?

我正在研究一些示例,并且遇到了错误monad的bind(>> =)实现错误:

data E a = Success a
         | Error String

instance Monad E where
    return a = Success a
    (Success a) >>= f = f a
    e@(Error s) >>= _ = e
Run Code Online (Sandbox Code Playgroud)

 

Error.hs:15:25:
Couldn't match type `a' with `b'
  `a' is a rigid type variable bound by
      the type signature for >>= :: E a -> (a -> E b) -> E b
      at Error.hs:14:5
  `b' is a rigid type variable bound by
      the type signature for >>= …
Run Code Online (Sandbox Code Playgroud)

haskell

4
推荐指数
1
解决办法
97
查看次数