小编pbo*_*oer的帖子

重新出口模块对树木有害吗?

我和我的同事发生争执,我们似乎无法从任何官方来源(MDN,webpack文档......)找到答案.我的研究也没有取得多少成果.即使在进口方面也似乎存在疑问.

我们的设置是Webpack,Babel和典型的React/Redux应用程序.举个例子:

export * from './actions';
export * from './selectors';
export * from './reducer';

export { default } from './reducer';
Run Code Online (Sandbox Code Playgroud)

这允许我将Redux模块分成逻辑部分,使代码更易于阅读和维护.

然而,我的一些同事认为export * from,事实上可能会损害webpack树木震动的能力,因为他们相信在出口实际上只是再出口时会使用出口.

所以我的问题是,有没有事实证明或反驳这一点?

javascript ecmascript-6 webpack es6-modules tree-shaking

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

htaccess - 重写具有相同名称的目录的文件

我有一个网站,有多个PHP文件和目录具有相同的名称,如下所示:

/projects.php
/projects
/projects/something.php
Run Code Online (Sandbox Code Playgroud)

我已设法使用以下规则将http://example.com/projects重写为http://example.com/projects.php(使用此处的答案):

RewriteEngine On

# Disable automatic directory detection
DirectorySlash Off

# Hide extension
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
Run Code Online (Sandbox Code Playgroud)

但是,当我明确地将目录斜杠输入到URL时,它会访问该文件夹.马上:

http://example.com/projects   -->  http://example.com/projects.php  [file]
http://example.com/projects/  -->  http://example.com/projects/     [folder]
Run Code Online (Sandbox Code Playgroud)

我知道为什么这样做(projects/.php不是文件).我修复它的尝试包括检查它是否是一个文件夹,并用什么都替换斜线并改为访问它.

新的.htaccess:

RewriteEngine On

# Disable automatic directory detection
DirectorySlash Off

# Hide extension
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

# Folder fix
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule (.*)/$ $1.php
Run Code Online (Sandbox Code Playgroud)

这可以按预期工作,但它在客户端完全混乱,因为客户端仍然在其URL中有一个文件夹,所以当它尝试获取相对路径时,它会失败.

现在我考虑使用[R=301]标志进行重定向,但据我所知,它%{REQUEST_FILENAME}是相对于服务器的,所以重定向到那将是行不通的.

如果有人能指出我正确的方向,我将不胜感激!

php regex apache .htaccess mod-rewrite

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

等级求解和寻路

我最近玩了一个名为Just A Trim Please的小游戏,真的很喜欢整个概念.

游戏的基本目标是通过遍历每个广场一次来修剪整个草坪.您的割草机从瓷砖开始,从那里您可以向各个方向移动(除非墙壁阻挡您).如果你不止一次在草地上跑,它会恶化,你会失去水平.您只能向左,向右,向上或向下移动.但是,当您完成游戏时,会添加更多图块:

  • 一块瓷砖,你只能割一次(草).
  • 瓷砖你可以在它变质之前跑两次(更高的草).
  • 一个TIIE你可以去了,只要你想尽可能多的(混凝土).
  • 无法翻过的瓷砖(墙).

如果你没理解我的意思,去玩游戏,你会明白的.

我设法编写了一个蛮力算法,它可以解决只有第一种瓦片的谜题(这基本上是Knight's Tour问题的变体).然而,这不是最佳的,只适用于只能运行一次的瓷砖拼图.我完全迷失了如何处理额外的瓷砖.

给定一个起点和一个瓦片地图,有没有办法或算法来找到解决水平的路径(如果可以解决)?我不关心效率,这只是我心中的一个问题.我很好奇你怎么去解决它.

我不是在寻找代码,只是指南,或者如果可能的话,还要查看程序的纯文本说明.如果你确实有伪代码,那么请分享!:)

(另外,我不完全确定这是否与路径寻找有关,但这是我最好的猜测.)

language-agnostic algorithm path-finding

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

EnumDisplayDevices没有返回任何内容

我在使用C#中的EnumDisplayDevices时遇到问题.我使用了这里发布的代码,它无缝地工作.但是最近我改用了在台式电脑上编写应用程序的代码.代码不再有效,不给我任何东西.

如果有帮助,我的显示器是运行在AMD Radeon HD 5770上的LG W2753VC.

这是我目前的代码:

        var device = new DISPLAY_DEVICE();

        device.cb = Marshal.SizeOf(device);
        try {
            for (uint id = 0; EnumDisplayDevices(null, id, ref device, 0); id++) {
                device.cb = Marshal.SizeOf(device);
                EnumDisplayDevices(device.DeviceName, 0, ref device, 0);
                device.cb = Marshal.SizeOf(device);

                Console.WriteLine("id={0}, name={1}, devicestring={2}", id, device.DeviceName, device.DeviceString);
                if (device.DeviceName == null || device.DeviceName == "") continue;
            }
        } catch (Exception ex) { }
Run Code Online (Sandbox Code Playgroud)

我在笔记本电脑上得到的东西:

id=0, name=\\.\DISPLAY1\Monitor0, devicestring=Generic PnP Monitor
Run Code Online (Sandbox Code Playgroud)

(那应该是"移动PC显示器",但这不是问题)

我在桌面上得到了什么:

id=0, name=, devicestring=
id=1, name=, devicestring=
Run Code Online (Sandbox Code Playgroud)

我这样做是错误的,如果没有,是否有其他方法可以获得所有连接的显示器?我已经尝试过WMI和注册表方法.

c# winapi

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