小编Luk*_*ich的帖子

Webpack 5 资产模块出现 woff 文件问题

我们最近从 webpack 4 迁移到 5,我发现了一些可能是错误或我缺乏理解的东西。

基本上,我的项目有几个页面,我在webpack.config.js中定义为入口点。这些入口点之一称为main.js,位于名为“popup”的目录中,该目录有两个文件 - main.htmlmain.js

Main.html非常简单,只是一些 html 和一个指向main.js 的链接。 Main.js从另一个目录导入一个 scss 文件,我们称之为styles.scss

import './other_directory/styles.scss';

styles.css从另一个地方加载字体信息,如下所示

@font-face {
    font - family: 'fontello';
    src: url('./assets/fontello.woff2') format('woff2');
    ...
}
Run Code Online (Sandbox Code Playgroud)

webpack 配置的另外两个相关部分是:

  1. Main.js是入口点,但main.html不是,因此我使用 CopyWebpackPlugin 将其复制到dist/目录中
new CopyWebpackPlugin({
            patterns: [{
                    from: 'src/popup/',
                    to: 'popup/'
                },
Run Code Online (Sandbox Code Playgroud)
  1. 由于这是 webpack 5,我使用资源管理器来处理字体,所以我在加载器部分有这个:
                module: {
                    rules: [{
                            test: /\.s(a|c)ss$/,
                            use: [{
                                loader: 'style-loader'
                            }, {
                                loader: 'css-loader'
                            }, …
Run Code Online (Sandbox Code Playgroud)

javascript css fonts webpack webpack-5

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

宁静的路线和Django

我正在将Rails项目迁移到Django.Rails项目是使用restful路由构建的,它从不接触数据库.相反,它只是重定向到不同的方法,这些方法都使用指定的操作方法调用外部服务.现在,我已经找到了许多django的框架,它们提供了更多的功能以及一堆铃声和口哨声,但这对我目前的情况来说太过分了.

作为替代方案,我可以忽略urls.py中的action方法,只需提供一个regex来验证url,然后解析views.py中的请求方法,重定向到适当的方法.这是一种方法还是有其他方法我可以看一下?

django rest

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

使用 chrome 扩展中的剪贴板 API 写入剪贴板时,文档未聚焦错误

我正在开发一个扩展程序,它拍摄页面可见部分的快照并将其复制到剪贴板。我决定使用新的剪贴板 API来做到这一点。处理捕获和复制的代码位于我的扩展程序的 background.js 中。这是相关部分的样子:

    chrome.tabs.captureVisibleTab(function(dataUrl) {
        convertToBlob(dataUrl).then((data) => {
            navigator.clipboard.write([
                new ClipboardItem({
                    'image/png': data
                })
            ]);
        });
    });
Run Code Online (Sandbox Code Playgroud)

此操作是通过单击我使用 注入页面的小部件触发的chrome.tabs.executeScript。我只在 Chrome 中工作。但是,每次尝试时,都会出现此错误:

Uncaught (in promise) DOMException: Document is not focused.
Run Code Online (Sandbox Code Playgroud)

最初,我认为我捕获的文档没有聚焦,但事实并非如此。我的document.hasFocus()回归真实。然后我想,出于某种我无法理解的原因,它希望 background.html 成为焦点。因此,我最终创建了一个包含输入字段的自定义 background.html,在执行 navigator.clipboard 访问之前,我会以编程方式关注并单击该输入。没有骰子。编辑:我执行了实际的页面检查并且 background.html 确实没有聚焦,即使我将焦点分配给它,这是有道理的。没有意义的是为什么会发生这种情况,因为我应该使用此 API 在任何上下文中将内容捕获到剪贴板。

我确实运行了 navigator.permissions 查询以查看是否授予了剪贴板写访问权限,并且确实如此。

在这一点上,我没有想法,有人有什么建议吗?谢谢!卢卡

javascript clipboard google-chrome-extension

5
推荐指数
0
解决办法
1844
查看次数

编辑现有的Firefox加载项

对于我正在进行的其中一个项目,我必须使用DOM Inspector来调试Firefox扩展.

DOM检查器的问题在于它只向您显示代码下面的浏览器,没有办法分离浏览器或并排出代码部分或浏览器.

它对我不起作用,因为我正在调试的插件有一个大的xul叠加层,并且有问题的区域位于底部,所以没有物理方法来查看该区域的代码以及区域本身.

所以我决定修改DOM Inspector本身,将浏览器放在代码编辑器的一边.

以下是我采取的步骤:

  1. 从配置文件目录中获取现有的xpi文件.
  2. 将其改为拉链.
  3. 在里面并inspector.jar使用提取jar -xf <filename>
  4. 去了inspectorOverlay.xul,改成<vbox id="bxInspectorMain">了一个hbox.(这应该足以将这两个窗口水平放置.)
  5. 然后我使用重新创建jar文件jar cf.
  6. 压缩目录,确保名称相同,并将扩展名更改回xpi.

但是,当我尝试运行它时,我收到以下警告:

Warning: WARN addons.xpi: Add-on is invalid: [Exception... "Component returned failure code: 0x80520006 (NS_ERROR_FILE_TARGET_DOES_NOT_EXIST) [nsIZipReader.getInputStream]"  nsresult: "0x80520006 (NS_ERROR_FILE_TARGET_DOES_NOT_EXIST)"  location: "JS frame :: resource://gre/modules/XPIProvider.jsm :: loadManifestFromZipReader :: line 740"  data: no]
Source File: resource://gre/modules/XPIProvider.jsm
Line: 740

Warning: WARN addons.xpi: Could not uninstall invalid item from locked install location
Source File: resource://gre/modules/XPIProvider.jsm
Line: 2042
Run Code Online (Sandbox Code Playgroud)

我的问题是 - …

firefox firefox-addon dom-inspector

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

使用环境变量测试 Django 视图

我开始为依赖于几个环境变量的 Django 应用编写测试。当我在 shell 中测试它时,我可以导入 os 并指定变量,我的测试工作得很好。但是,当我将它们放入tests.py 时,我仍然收到一个关键错误,因为找不到这些变量。这是我的测试的样子:

from django.utils import unittest
from django.test.utils import setup_test_environment
from django.test.client import Client
import os

os.environ['a'] = 'a'
os.environ['b'] = 'b'


class ViewTests(unittest.TestCase):
    def setUp(self):
        setup_test_environment()

    def test_login_returning_right_template(self):
        """ get / should return login.html template """
        c = Client()
        resp = c.get('/')
        self.assertEqual(resp.templates[0].name, 'login.html')
Run Code Online (Sandbox Code Playgroud)

这是初始化这些变量的错误位置吗?我尝试在 setUp 上执行此操作,但结果相同-未找到它们。关于如何在运行测试套件之前初始化环境变量的任何建议?谢谢!卢卡

django unit-testing

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