小编sli*_*kts的帖子

如何使嵌套的markdown项目符号列表在vscode中具有不同的项目符号样式

我想在markdown中使用子弹点而不是星号(*)字符来创建vscode渲染列表,以便顶级使用•,下一个将使用◦等.

我的第一种方法是使用FontForge创建一个连字字体,用◦替换*,用◦替换空格加*,用▪替换两个空格加*,依此类推,但是使用连字有明显的问题,它不是上下文敏感的,所以所有星号将被替换,而不仅仅是那些领先一行的星号.

查看vscode文本修饰API,它似乎仅限于更改字体样式和颜色,而不是字体系列.有没有办法在视觉上替换vscode中的字符?它们仍应在源代码中保存为星号,以便有效降价.

markdown ligature visual-studio-code vscode-extensions monaco-editor

9
推荐指数
1
解决办法
613
查看次数

更改 Azure Pipelines YAML 中所有步骤的工作目录

可以为单独的脚本设置工作目录:

- script: foo
  workingDirectory: bar
Run Code Online (Sandbox Code Playgroud)

但是,如果所有步骤都打算在特定目录中运行,则为每个步骤定义它就会变得重复。

使用cd不影响其他步骤:

- script: cd foo
- script: pwd # returns default working dir instead of foo
Run Code Online (Sandbox Code Playgroud)

这个问题很重要的两个具体例子是:

  • 当将多个存储库作为资源签出时,因此默认工作目录比签出的存储库高一级
  • 为位于子目录中的项目运行管道时(例如在 monorepo 中)

yaml azure-devops azure-pipelines azure-pipelines-yaml

9
推荐指数
1
解决办法
7575
查看次数

允许从 npm 包中深度导入而路径中没有构建目录(如 lib/dist)

为 npm 打包代码时的标准方法是将转译或捆绑的代码放在单独的lib,distbuild目录中,并将package.main属性(和module/ browser)设置为指向构建的文件,这使得在执行裸导入时构建目录的存在是透明的(没有路径)。但是,如果需要深度导入(导入package.json属性中未引用的特定模块),则意味着构建目录需要包含在路径中,如下所示:require('package/lib/some-module'),这看起来很糟糕。

是否有任何方法的例子可以同时:

  1. 支持深度导入,路径中没有构建目录
  2. 支持npm-link和工具,如 Lerna
  3. 仍然将构建的文件放在单独的目录中以保持整洁

我尝试过或看到的每一种方法都不符合其中一个标准;例如,复制package.json到构建目录 ( lib/ dist) 允许从构建目录发布或链接包,但是像 Lerna 这样的工具不支持这种方法,因为它们希望package.json位于包的根目录而不是构建目录中,所以只满足第 1 点和第 3 点。

将源代码放置在包的根目录中,并且源代码旁边的转译或构建文件允许深度导入,并且 Lerna 也支持,但它不满足第三个标准(整洁)。

拥有进口的地图将解决这个问题,但我不知道任何工具支持导入映射呢。

问题是:是否有一些我错过的方法可以满足列出的所有三个要点?

javascript packaging node.js npm yarnpkg

7
推荐指数
0
解决办法
592
查看次数

在JavaScript中被命名的函数被低估了吗?

以jQuery框架为例,如果你运行这样的代码:

$(document).ready(function init() { foo.bar(); });
Run Code Online (Sandbox Code Playgroud)

您在Firebug中获得的堆栈跟踪将如下所示:

init()
anonymous()
anonymous([function(), init(), function(), 4 more...], function(), Object name=args)
anonymous()
anonymous()
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它不是非常易读,因为您必须单击每个函数以找出它是什么.匿名函数也会(?)()在分析器中显示,并且它们可能导致" 无法访问优化闭包 "错误.在我看来,这些是避免它们的充分理由.然后有一个事实是ECMAScript 5将arguments.callee在其严格模式下弃用,这意味着它不可能用它来引用匿名函数,这使得它们在未来的证据不那么简单.

另一方面,使用命名函数可能会导致重复,例如:

var Foo = {
    bar: function bar() {}
}

function Foo() {}

Foo.prototype.bar = function bar() {}
Run Code Online (Sandbox Code Playgroud)

我是否认为根据命名函数提供的调试方便,这种重复是正确的,并且jQuery等良好框架中匿名函数的流行是一种疏忽?

javascript debugging jquery expression function

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