Can't generate same addresses as bitcoincore using xprv from bitcoin-core First of all all addresses below are for testing purposes so I don't care about private keys.

So dumped wallet created by Bitcoin-qt v0.16.2:

extended private masterkey: xprv9s21ZrQH143K3mYiBBH7MwWV9VTkeB5q5sxEFGgvLbLqRZ3xPVAKvwyxSLVtTcL2tz665vdZnHLrMQPr6MWGKdDHYoncZmUNiUgtShGCmZE


From what I can understand from the rest of the dump the first receive address is:
addr=3DhmoRSx2bjxyJm7A1Crs3bCPnVcEx51fE hdkeypath=m/0'/0'/0'

Now I am trying to generate same addess using bitcoinjs-lib but haven't had any success so far with it.

import { HDNode } from "bitcoinjs-lib";
const key = HDNode.fromBase58(
 "xprv9s21ZrQH143K3mYiBBH7MwWV9VTkeB5q5sxEFGgvLbLqRZ3xPVAKvwyxSLVtTcL2tz665vdZnHLrMQPr6MWGKdDHYoncZmUNiUgtShGCmZE"
);
console.log(key.derivePath("m/0'/0'/0'").getAddress()); // prints 1NoQERVA18v5WcFUbgvz22tDGigmAkqy4U


Now I get confused becuase I use same derive path but I get 2 different addresses and on top of that looks like address from dump is multisig? Is it becuase of multisig?

If so how should I generate wallet.dat that is not multisig and is HD.
looks like address from dump is multisig?


It is not multisig. Bitcoin Core does not generate multisig addresses.

That address is a P2SH wrapped Segwit address. The same private key can be associated with multiple addresses since there are different types of addresses. The type of address you that you are generating with bitcoinjs-lib are P2PKH addresses. However Bitcoin Core is making P2SH-P2WPKH addresses.

You should be able to get the same address if you do something like

bitcoin.payments.p2sh({
      redeem: bitcoin.payments.p2wpkh({ pubkey: key.derivePath("m/0'/0'/0'").publicKey })
})