小编Zen*_*ter的帖子

使用webpack,ES6和Babel进行调试

这似乎应该是相对简单的事情,但唉.

我有ES6课程:

'use strict';

export class BaseModel {  
    constructor(options) {
        console.log(options);
    }
};
Run Code Online (Sandbox Code Playgroud)

和使用它的根模块:

'use strict';

import {BaseModel} from './base/model.js';

export let init = function init() {
    console.log('In Bundle');
    new BaseModel({a: 30});    
};
Run Code Online (Sandbox Code Playgroud)

我的目标是:

  1. 通过Babel传递上述内容,获取ES5代码
  2. 用webpack打包模块
  3. 能够调试结果

经过一些试用,这是我的webpack配置:

{
    entry: {
        app: PATH.resolve(__dirname, 'src/bundle.js'),
    },
    output: {
        path: PATH.resolve(__dirname, 'public/js'),
        filename: 'bundle.js'
    },        
    devtool: 'inline-source-map',
    module: {
        loaders: [
            {
                test: /\.js$/,
                exclude: /(node_modules|bower_components)/,
                loader: 'babel'
            }
        ]        
    }
}
Run Code Online (Sandbox Code Playgroud)

这似乎在某种程度上起作用.

所以,我可以这样做:

devtools断点截图

我可以单击F11并输入代码,但我无法评估BaseModel:

错误的控制台评估

这有点挫败了调试的目的(或目的之一).

我试着加入source-map-loader各种顺序有 …

javascript debugging ecmascript-6 webpack babeljs

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

Chromer Developer Tools中的Sass/SCSS支持

以前,直到最近的时间(据我所知,直到Chrome 27),Chrome开发工具在Chrome实验的帮助下,支持Sass(SCSS准确)"检查".

支持表现在检查站点的CSS文件的能力以及CSS是否使用--debug-infoSCSS(SCSS 3.2.7)从SCSS编译,然后在CSS面板中:

在此输入图像描述

而不是CSS文件链接 - 您将看到相应的SCSS文件链接,您可以单击它,它将在确切的SCSS规则中的资源中打开文件,这有助于检查CSS规则(很像您可以使用CSS文件) .

无论出于何种原因,这已停止使用(我的)最新的Chrome更新.

这对我目前正在做的工作很重要(SCSS重组一个大型项目)所以我问:有没有人经历过同样的事情(我在所有可以访问的机器上都有这个),更重要的是,有人知道吗如何解决它(没有找到旧的Chrome版本)

我不确定什么是合适的SE渠道,但因为它与开发有关 - 在这里它是

PS SCSS生成的路径似乎是正确的,因为在FireSASS中它们被正确显示和访问

我试过的任何频道都会发生同样的情况 - 发布,测试版,金丝雀

更新18.06.13

由于似乎旧的(--debug-info)日子已经过去,我将接受@electric_g回答作为唯一的可能性.

Sass在实验中的支持

google-chrome sass google-chrome-devtools

21
推荐指数
1
解决办法
9894
查看次数

在悬停/活动时更改材质UI ListItem子项

考虑侧栏导航的以下组件结构:

<ListItem button dense component={CustomNavLink} to="/dashboard">
    <ListItemIcon>
        <DashboardIcon />
    </ListItemIcon>
    <ListItemText primary="Dashboard" />
</ListItem>
Run Code Online (Sandbox Code Playgroud)

任务是在悬停或变为活动时更改ListItemIconListItemText外观CustomNavLink.

请注意,这CustomNavLink是一个扩展的React Router的NavLink组件,active它在与当前路由匹配时获取应用的类.

以下有点hacky方式通过classes属性实现(为了清晰而简化和简化):

const styles =  {
    root: {
        ...
        '&.active, &:hover, &.active:hover': {
            '& path': {
                fill: 'red'
            },
            '& span': {
                color: 'red'
            }
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

(classes然后应用于ListItem组件)

这似乎是一种非常糟糕的方式,因为嵌套组件的结构泄漏到父级的样式中...这类似于在"旧"CSS中执行此操作:

div:hover > ul > li > a {
    color: red;
}
Run Code Online (Sandbox Code Playgroud)

什么是惯用的Material UI解决方法?

作为参考,这是如何在以下方面完成的styled-components: …

reactjs material-ui

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

当 Webpack 块过时时自动重新加载页面

我有一个与 Webpack 捆绑在一起的应用程序。

有一个主要的包文件,其余的代码被分成每个屏幕的块。主包和块都是使用哈希作为文件名的一部分生成的。

...
filename: '[name]-[hash].js',
chunkFilename: '[id].[name]-[hash].js'
...
Run Code Online (Sandbox Code Playgroud)

在将新更改部署到生产中后,包和块文件被替换(因此,旧的被删除)。

如果用户打开应用程序并尝试导航到应该加载过时块的页面,则应用程序的一部分会崩溃。

问题:有没有办法检测加载块失败并自动重新加载屏幕或显示适当的消息?

什么样的策略是可取的?

谢谢。

lazy-loading webpack

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

创建带有分隔符/子标题的可访问列表

我正在尝试确定创建具有子标题(或组分隔符/可折叠标题,如果您愿意)的可访问手风琴/列表的最佳方法。

为了说明,这是默认的外观(示意图):

在此处输入图片说明

有些项目是可点击的(并通过更改背景颜色和更改光标来提供提示),有些则不是(如“列表项目 13”)。

一些(或全部)子标题可能是可折叠的(稍后添加一些额外的提示):

在此处输入图片说明

现在,该结构可以通过几种可能的方式实现:

选项 1. 让标准和可访问性见鬼去吧

<ul>
  <div class="header"><a href="...">Header 1</div>
  <li><a href="...">List item 11</a></li>
  <li><a href="...">List item 12</a></li>
  <li><span>List item 13</span></li>
  <div class="header"><a href="...">Header 2</div>
  <li><a href="...">List item 21</a></li>
  <li><span>List item 22</span></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

这个确实有效。它不可访问且未通过 HTML 验证,但它可以工作。

选项 2. 好吧,至少它通过了验证器

<ul>
  <li class="header"><a href="...">Header 1</a></li>
  <li><a href="...">List item 11</a></li>
  <li><a href="...">List item 12</a></li>
  <li><span>List item 13</span></li>
  <li class="header"><a href="...">Header 2</a></li>
  <li><a href="...">List item 21</a></li>
  <li><span>List item 22</span></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

这个通过验证并且在一定程度上可以访问,但不允许区分标题和常规可点击列表项(就屏幕阅读器而言)。

选项 3. TL;DR

<ul>
  <li>
    <a class="header" href="...">Header …
Run Code Online (Sandbox Code Playgroud)

html accessibility

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

将外部 JAR 添加到 Eclipse 应用程序调试配置

问题如下:

  1. 我安装并运行了第 3 方 Eclipse 插件

  2. 上面的 Eclipse 插件提供了某种“扩展点” - 一个我可以在插件 lib 目录中扩展/重写和替换的类的源代码(我并不是说这是一个好主意,但必要性让我们做一些事情我们并不为此感到自豪 - 内部开发有其怪癖)

  3. 这里的想法是将任何此类更改包含在外部 JAR(由我们创建)中,以便代码中的任何更改都不需要我们在开发过程中重新启动 Eclipse 来“刷新”“扩展点”类。

  4. 最终,将创建一个插件/捆绑包并将其作为原始插件的依赖项放置 - 这样安装和使用该插件实际上就可以工作。

问题是 - 我可以以某种方式将外部 JAR 文件添加到 Eclipse 应用程序调试/运行配置中吗?

通常,将 JAR 添加到类路径选项卡适用于常规 Java 应用程序调试/运行。然而,Eclipse 应用程序没有该选项卡。

到目前为止,我们的努力(失败了,可能是由于一些愚蠢的语法错误或其他原因)包括:

  1. 将 JAR 添加为Bundle-ClassPath:插件的依赖项C:\test.jar
  2. 将 JAR 添加到系统的 CLASSPATH 变量中

这些都没有任何区别 - 引用 JAR 文件中的类的“扩展点”中的代码失败 - 异常归结为:

Caused by: java.lang.ClassNotFoundException: test.Test
at org.eclipse.osgi.internal.loader.BundleLoader.
     findClassInternal(BundleLoader.java:506)
Run Code Online (Sandbox Code Playgroud)

任何指示/帮助/批评将不胜感激。

更新

显然,将 JAR 放在插件的 lib 目录中并更新 MANIFEST 文件不起作用(并不是说它对我有帮助 - 因为这样的解决方案需要“刷新”,这是我在第一个尝试避免的地方),所以我一定是做了一些根本错误的事情。

这有任何意义吗?还是我在其中一次尝试中错过了一些东西?

java debugging eclipse-plugin classpath

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

Metricbeat kubernetes 模块无法连接到 kubelet

我们有一个设置,其中 Metricbeat 作为 DaemonSet 部署在 Kubernetes 集群(特别是 AWS EKS)上。

一切似乎都正常运行,但kubelet连接。

为了澄清,以下模块:

- module: kubernetes
  enabled: true
  metricsets:
    - state_pod
  period: 10s
  hosts: ["kube-state-metrics.system:8080"]
Run Code Online (Sandbox Code Playgroud)

工作正常(事件流入 logstash/elastic)。

该模块的配置,但是,不以任何工作的主机值的变种(localhost/ kubernetes.default/不管):

- module: kubernetes
  period: 10s
  metricsets:
    - pod
  hosts: ["localhost:10255"]
  enabled: true
  add_metadata: true
  in_cluster: true
Run Code Online (Sandbox Code Playgroud)

注意:使用集群 IP 而不是 localhost(以便它进入控制平面)也可以工作(当然,虽然不会检索所需的信息)。

上面的配置直接取自 Metricbeat 文档,立刻让我感到奇怪——localhost 如何(从 Metricbeat docker 中)转换为相应的 kubelet?

鉴于上述情况,正如人们所料,错误是:

error making http request: Get http://localhost:10255/stats/summary: 
dial tcp [::1]:10255: connect: cannot assign requested address
Run Code Online (Sandbox Code Playgroud)

这表明某种连接问题。

但是,当部署到任何节点的 SSH 连接 Metricbeat …

kubernetes elastic-stack metricbeat

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

在 CodeMirror 中查找令牌的父元素

我已经在 Google 网上论坛上发布了同样的问题,但没有结果。如果在这里找到答案,我会同步。

旁注:再次提醒我为什么我鄙视 Google 网上论坛。格式和可用性都很糟糕。

反正...

想象一下,我在 XML 模式下的 CodeMirror 中有以下 HTML:

<div data-id="parent"><span data-id="test"></span></div>
Run Code Online (Sandbox Code Playgroud)

我能够通过右键单击或悬停(或任何其他用户启动的事件,实际上)来获取鼠标悬停的令牌。它的名称和类型。

我的问题 - 我可以获得“父”令牌及其属性吗?

为了显示:

  1. 如果我单击test,我希望能够知道它是属性data-id“under”的值span

  2. 如果我点击span,我希望能够获得它的data-id,而且还知道它位于“下”div令牌。

当然,这是假设该语言提供了“父”或“下”的概念……我猜 XML/HTML 确实如此。

有任何想法吗?是否有相应的 API,无论是在 CM 还是 XML/HTML 相应模式下?

我尝试过解析路线 - 获取“当前”令牌周围的内容,但它非常丑陋并且无法正常工作。

谢谢。

javascript codemirror

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