小编phi*_*ipp的帖子

Object.assign-override嵌套属性

我有一个a这样的对象:

const a = {
  user: {
   …
   groups: […]
   …
  }
}
Run Code Online (Sandbox Code Playgroud)

因此,有更多的属性 a.user

我想只改变a.user.groups价值.如果我这样做:

const b = Object.assign({}, a, {
  user: {
    groups: {}
  }
});
Run Code Online (Sandbox Code Playgroud)

b没有任何其他财产,除了b.user.groups,所有其他财产都被删除.是否有任何ES6方式只能更改嵌套属性,而不会丢失所有其他属性Object.assign

javascript ecmascript-6

45
推荐指数
4
解决办法
3万
查看次数

Node v13 / Jest / ES6 — 对没有 babel 或 esm 的模块的原生支持

是否可以在不使用esm或不使用 Jest 的情况下使用 Jest 测试 ES6 模块babel?由于node v13本机支持 es6 已经尝试过:

//package.json
{
  …
  "type": "module"
  …
}



//__tests__/a.js
import Foo from '../src/Foo.js';


$ npx jest

Jest encountered an unexpected token
…
Details:

/home/node/xxx/__tests__/a.js:1
import Foo from '../src/Foo.js';
^^^^^^

SyntaxError: Cannot use import statement outside a module
Run Code Online (Sandbox Code Playgroud)

当 babel 添加一个转译器时,它可以工作,但是 es6 模块也可以在本地使用吗?

node.js ecmascript-6 jestjs

25
推荐指数
2
解决办法
7219
查看次数

Node v9 + Webpack v4 + extract-text-webpack-plugin =编译错误

//webpack.config.js -- shortened for convenience

const 
  ExtractTextPlugin = require("extract-text-webpack-plugin"),

  extractSass = new ExtractTextPlugin({
    filename: "Css/[name].css",
    allChunks: true
  }),

  //…
  config: {
    module: {
      rules: [
        //…
        {
          test: /\.scss$/,
          use: extractSass.extract([ 'css-loader', 'sass-loader' ])
        }
        //…
      ]

    },

    plugins: [
      extractSass
    ]
  }

  module.exports = config;
Run Code Online (Sandbox Code Playgroud)

使用时:

         0% compiling(node:333) DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead
(node:333) DeprecationWarning: Tapable.apply is deprecated. Call apply on the plugin directly instead                                                                                                                                                   
        77% module and chunk tree optimization unnamed compat plugin/xxx/node_modules/webpack/lib/Chunk.js:460 …
Run Code Online (Sandbox Code Playgroud)

webpack

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

阻止Sass制作报价值

我对Sass很安静...我想用百分比值创建一些css,如:

width : 13%;
Run Code Online (Sandbox Code Playgroud)

该值是sass数字操作的结果.写这个

width : $main-width + "%"
Run Code Online (Sandbox Code Playgroud)

scss代码生成这个:

width : "13%";
Run Code Online (Sandbox Code Playgroud)

css,实际上什么不起作用,因为它应该是:

width : 13%;
Run Code Online (Sandbox Code Playgroud)

写作

width : $main-width %;
Run Code Online (Sandbox Code Playgroud)

结果是

width : 13 "%"
Run Code Online (Sandbox Code Playgroud)

什么也导致了非工作的CSS规则.有没有办法让Sass打印13%平原,没有引号?

sass

14
推荐指数
2
解决办法
4406
查看次数

哪个JavaScript库可以使用贝塞尔曲线进行布尔运算?

是否存在可以对路径执行布尔运算的Javascript库(贝塞尔曲线)?

我知道Paper.js和Raphael.js,但现在都无法执行这些操作.

javascript svg bezier boolean-operations html5-canvas

12
推荐指数
3
解决办法
3213
查看次数

节点工作区 — 需要本地包

我使用的是node/npmworkspaces的功能,布局是这样的:

\n
.\n+-- package.json\n`-- packages\n   `-- p1\n      `-- package.json\n   `-- p2\n      `-- package.json\n
Run Code Online (Sandbox Code Playgroud)\n
./package.json\n\n{\n  \xe2\x80\xa6\n  "workspaces": [\n    "./packages/*"\n  ],\n  \xe2\x80\xa6\n  "dependcies": { \xe2\x80\xa6 }\n  \xe2\x80\xa6\n}\n
Run Code Online (Sandbox Code Playgroud)\n

npm install一切都进展顺利。但现在我想将包添加p1为 package 的依赖项p2。但我该怎么做呢?我天真地尝试过:

\n
./packages/p2/package.json\n\n{\n  \xe2\x80\xa6\n  "dependencies": {\n    "p1": "*"\n  }\n  \xe2\x80\xa6\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n

但这会在安装时产生错误,告诉我p1找不到注册表。

\n

node.js npm npm-workspaces

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

在所有测试之前运行命令

我创建了一个Symfony命令来将我的应用程序重置为初始状态.要从cli运行该命令,我需要输入:

php bin/console app:reset
Run Code Online (Sandbox Code Playgroud)

我想在所有单元测试之前运行该命令一次.我可以设法在每次测试之前完成,并且肯定在所有课程之前.因此我使用了那段代码:

public function setUp()
{
    $kernel = new \AppKernel('test', true);
    $kernel->boot();
    $app = new \Symfony\Bundle\FrameworkBundle\Console\Application($kernel);
    $app->setAutoExit(false);

    $app->run(new ArrayInput([
        'command' => 'app:reset', ['-q']
    ]), new NullOutput());
}
Run Code Online (Sandbox Code Playgroud)

如上所述,这在每次测试之前都很好用,并且setUpBeforeClass()我可以在每个类之前使用它,但是在所有测试之前就足够了,因为该命令需要一些时间才能运行.

phpunit symfony

10
推荐指数
2
解决办法
5344
查看次数

为什么仅将数据存储在平衡二叉搜索树的叶节点中?

我买了一本关于计算几何的好书.在这里和那里阅读时,我经常偶然发现使用这种特殊的二叉搜索树.这些树是平衡的,应该只在叶节点中存储数据,而内部节点应该只存储值以引导搜索到叶子.

下图显示了此树的示例(其中叶子是矩形,内部节点是圆圈).

二叉搜索树的插图

我有两个问题:

  1. 不在内部节点中存储数据有什么好处?

  2. 出于学习的目的,我想实现这样一棵树.因此,我认为使用AVL树作为基础可能是一个好主意,但这是一个好主意吗?

任何有用的资源都非常受欢迎.

computational-geometry binary-search-tree data-structures

9
推荐指数
2
解决办法
2485
查看次数

用于处理复杂2D几何的JavaScript库

有一个很好的复杂几何javascript库,如:凸包,多边形交叉(带孔的多边形),多边形分解和多边形合并?

我非常需要多边形几何,但如果有更多的功能会很好......

问候...

javascript geometry 2d

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

测试对象是否是 es6 模块

使用这样的动态导入:

\n
const i = import('./path/to/module.js');\n
Run Code Online (Sandbox Code Playgroud)\n

为该模块生成一个 Promise。假如说./path/to/module.js看起来像这样:

\n
export function foo () {}\nexport function bar () {}\nexport default function () {}\n
Run Code Online (Sandbox Code Playgroud)\n

生成的对象将具有这样的形状:

\n
{\n  foo: \xe2\x80\xa6\n  bar: \xe2\x80\xa6\n  default: \xe2\x80\xa6\n}\n
Run Code Online (Sandbox Code Playgroud)\n

现在我需要弄清楚给定的对象是否是这样的模块,或者任何其他模块。那么:是否有任何测试来确定给定对象是否是通过动态导入获得的 es6 模块?

\n

javascript predicate ecmascript-6 es6-modules

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