小编Dan*_*lan的帖子

为什么打字稿允许我导入它在运行时无法使用的依赖项?

您可以在这里查看我的示例项目:https://github.com/DanKaplanSES/typescript-stub-examples/tree/JavaScript-import-invalid

\n

我创建了这个名为 main.ts 的文件:

\n
import uuid from "uuid";\n\nconsole.log(uuid.v4());\n\n
Run Code Online (Sandbox Code Playgroud)\n

虽然打字稿适合这种导入,但当我尝试node main.js,它会给出以下错误:

\n
console.log(uuid_1["default"].v4());\n                              ^\n\nTypeError: Cannot read property \'v4\' of undefined\n    at Object.<anonymous> (C:\\root\\lib\\main.js:5:31)\n\xe2\x86\x90[90m    at Module._compile (internal/modules/cjs/loader.js:1063:30)\xe2\x86\x90[39m\n\xe2\x86\x90[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)\xe2\x86\x90[39m\n\xe2\x86\x90[90m    at Module.load (internal/modules/cjs/loader.js:928:32)\xe2\x86\x90[39m\n\xe2\x86\x90[90m    at Function.Module._load (internal/modules/cjs/loader.js:769:14)\xe2\x86\x90[39m\n\xe2\x86\x90[90m    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)\xe2\x86\x90[39m\n\xe2\x86\x90[90m    at internal/main/run_main_module.js:17:47\xe2\x86\x90[39m\n
Run Code Online (Sandbox Code Playgroud)\n

如果我将文件更改为此,它会正常执行:

\n
console.log(uuid_1["default"].v4());\n                              ^\n\nTypeError: Cannot read property \'v4\' of undefined\n    at Object.<anonymous> (C:\\root\\lib\\main.js:5:31)\n\xe2\x86\x90[90m    at Module._compile (internal/modules/cjs/loader.js:1063:30)\xe2\x86\x90[39m\n\xe2\x86\x90[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)\xe2\x86\x90[39m\n\xe2\x86\x90[90m    at Module.load (internal/modules/cjs/loader.js:928:32)\xe2\x86\x90[39m\n\xe2\x86\x90[90m    at Function.Module._load (internal/modules/cjs/loader.js:769:14)\xe2\x86\x90[39m\n\xe2\x86\x90[90m    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)\xe2\x86\x90[39m\n\xe2\x86\x90[90m    at internal/main/run_main_module.js:17:47\xe2\x86\x90[39m\n …
Run Code Online (Sandbox Code Playgroud)

javascript commonjs node.js typescript es6-modules

13
推荐指数
2
解决办法
2877
查看次数

为什么可以将键值对传递给破坏地图的函数?

我以为我理解了解构,但我正在阅读一个clojure博客,这让我很困惑.如果你有一个像这样的函数:

(defn f [& {:keys [foo bar]}] 
  (println foo " " bar))
Run Code Online (Sandbox Code Playgroud)

你为什么这样称呼它:

(f :foo 1 :bar 2)
Run Code Online (Sandbox Code Playgroud)

我的第一个想法是我的函数应该像这样调用:

(f {:foo 1 :bar 2})
IllegalArgumentException No value supplied for key: {:foo 1, :bar 2}  clojure.lang.PersistentHashMap.createWithCheck (PersistentHashMap.java:89)
Run Code Online (Sandbox Code Playgroud)

但显然这不起作用.我认为这与&工作方式有关.但是我一直认为它之后的东西是一个向量,因此你必须在它之后像向量一样去构造任何东西.

有人可以向我解释这个定义是如何/为什么以它的方式工作的?谢谢

clojure destructuring

12
推荐指数
2
解决办法
1408
查看次数

canvas.getContext("2d")每次都返回相同的实例吗?

我想知道是否canvas.getContext("2d")保证每次调用时都返回相同的上下文实例.

我想知道的原因是因为我试图遵循这个答案中的建议,以便我的缩放画布看起来不模糊.但我在游戏中创建了许多画布,所以我想制作一个createCanvas可供所有人使用的功能.我希望它看起来像这样:

function createCanvas(x, y) {
  canvas = $("<canvas width='" + x + "' height='" + y + "'></canvas>")[0];
  ctx = canvas.getContext("2d");
  ctx.imageSmoothingEnabled = false;  //modify the context
  return canvas;  //return the canvas, not the ctx
}
Run Code Online (Sandbox Code Playgroud)

如果canvas.getContext("2d")每次都返回一个新实例,这将没有任何效果.我需要返回画布,因为其他代码使用它.

这个问题有更好的解决方案吗?如果是这样,我会接受并重命名我的头衔.


编辑:我问过后我注意到这篇文章说你可以从上下文中获取画布ctx.canvas.非常好的提示.

javascript html5 canvas

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

如何在Intellij中定义运行junit测试的顺序?

我有一个片状的junit测试,只有在我运行所有测试时才会失败.我认为一个测试导致另一个测试失败,我想在我尝试修复它之前证明它.

如果我运行所有测试,它会运行"错误设置",然后运行"错误设置后失败的测试".它还会在两者之间运行许多无关紧要的慢速测试.但是,如果我使用一个模式只运行这两个,它运行"测试失败后设置失败"然后"错误设置".结果,两个都通过了.

如何按顺序运行"错误设置"和"在错误设置后测试失败"?

java junit integration-testing intellij-idea

12
推荐指数
2
解决办法
2万
查看次数

如何防止IntelliJ将资源复制到项目编译器输出目录中?

我在IntelliJ中有以下目录结构,其中包含一个Android库项目:

java/com/example/base/AndroidManifest.xml
java/com/example/base/assets # contains Android assets
java/com/example/base/res    # contains Android resources
java/com/example/base/Base.java
java/com/example/base/base.iml
Run Code Online (Sandbox Code Playgroud)

base.iml包含以下内容:

<content url="file://$MODULE_DIR$">
  <sourceFolder url="file://$MODULE_DIR$"
                isTestSource="false"
                packagePrefix="com.example.base" />
  <sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" />
  <excludeFolder url="file://$MODULE_DIR$/res" />
</content>
Run Code Online (Sandbox Code Playgroud)

当我构建一个依赖于我的库项目的Android应用程序项目时,我收到一个错误:

[myapp] java.util.zip.ZipException: duplicate entry: res/drawable/image_shadow.9.png
Run Code Online (Sandbox Code Playgroud)

项目结构对话框中,我配置项目编译器的输出是一个out我的项目的根目录下.当我尝试构建我的Android项目时,我注意到我的Android资源的副本最终在该out/production/base/com/example/base/res/文件夹下.

我的假设是我的Android资源被视为"普通"Java资源(您将加载使用的类型Class.getResource()),这就是他们被复制到的out/production原因,这反过来导致duplicate entry我看到的异常.

不知道是不是这样的话?如果是这样,我该如何防止这些文件被复制?在Eclipse中,文件中的<classpathentry>元素.classpath具有一个excluding属性,该属性采用glob模式来防止这种行为.

android intellij-idea

11
推荐指数
1
解决办法
3216
查看次数

如何在"详细信息"视图中启动JFileChooser?

我希望我的JFileChooser能够从详细信息视图开始,而不是从它开始的"列表"视图开始.你是如何做到的?

java windows swing jfilechooser

11
推荐指数
1
解决办法
4553
查看次数

Redis成为"内存"数据库意味着什么?

维基百科称 Redis是一个内存数据库,但它也表示它可以至少每2秒将"数据保存到磁盘上".我觉得这两件事是相互排斥的.如何在内存中考虑(它可以)将数据存储在磁盘上?我假设内存中的定义意味着它不存储到磁盘.


这是一个类似的问题:Redis概念:在内存还是数据库? 不同之处在于他在询问持久性实现.我的问题是关于内存与持久性的概念.

redis

11
推荐指数
2
解决办法
1万
查看次数

Sequelize:将bulkDelete与标准一起使用的示例在哪里?

我正在尝试写一个种子文件down,我想要bulkDelete在我的数据中创建的数据up.但我找不到有关如何执行此操作的任何文档.官方文档没有给出一个例子:http://docs.sequelizejs.com/class/lib/query-interface.js~QueryInterface.html#instance-method-bulkDelete

有人可以告诉我如何bulkDelete在表Fooname等于x或等于等于的所有行y

  down: (queryInterface, Sequelize) => {
    return queryInterface.bulkDelete('Foo', [what do I put here?], {});
  }
Run Code Online (Sandbox Code Playgroud)

node.js sequelize.js

11
推荐指数
2
解决办法
5796
查看次数

如何使用私有存储库中存在的复合操作?

我们对第三方服务进行了大量的健康检查。我们希望它们定期运行,因为当它们出现故障时,它会像代码中的错误一样影响我们的应用程序。知道“是他们而不是我们”可以显着减少故障排除时间。

我们已经通过 github 操作设置了此运行状况检查并计划运行,但我们希望每个第三方服务都有一个运行状况检查。这样,有关失败的 slack 消息将非常具体地说明发生了什么情况。但这会创建大量重复的 yml 内容。

我发现了一个叫做github 复合操作的东西,它似乎是为了解决这个问题,但我找不到有关复合操作是否可以存在于私有存储库中的信息。

uses密钥的文档仅在提及存储库时才提及公共存储库。有没有办法在私有存储库中进行复合操作并使用它?

我尝试制作他们的 hello world 示例,运行它,并且运行正确。然后我将操作存储库设为私有,并且使用操作构建的存储库失败并显示:

Unable to resolve action `user/repo@v1`, repository not found
Run Code Online (Sandbox Code Playgroud)

github repository github-actions

11
推荐指数
3
解决办法
9129
查看次数

为什么"mvn verify"没有运行我的集成测试?

我有一个多模块项目,我在root pom中定义了failafe,如下所示:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.19</version>
    <configuration>
        <includes>
            <include>**/*IntegrationTest.java</include>
            <include>**/*JourneyTest.java</include>
            <include>**/*CucumberFeatureTest.java</include>
        </includes>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
            </goals>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19</version>
    <configuration>
        <excludes>
            <exclude>**/*IntegrationTest.java</exclude>
            <exclude>**/*JourneyTest.java</exclude>
            <exclude>**/*CucumberFeatureTest.java</exclude>
        </excludes>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

我的其他poms中的其他任何地方都没有定义Failsafe.如果我运行mvn verify,它会跳过集成测试(它运行单元测试).但如果我运行mvn test-compile failsafe:integration-test,它会运行集成测试.

我假设故障安全应该在这两种情况下运行.那么为什么我输入时它不会运行mvn verify

更新:刚刚注意到这是围绕这些标签:

<build>
    <pluginManagement> <!-- oops -->
        <plugins>
            <plugin>
Run Code Online (Sandbox Code Playgroud)

我觉得这解释了原因,但我不知道为什么单元测试仍然运行像你期待与mvn verifymvn test.为什么在这方面,surefire与故障保护的工作方式不同?

java maven maven-failsafe-plugin

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