Truffle-default-builder issue with Truffle

Hi, there. Recently, i am building Dapp with some sample code from github. While doing the truffle migrate part, i found out that the module “truffle-default-builder” should be install with npm so that the compilation can pass! But in the process of installing the “truffle-default-builder”, i get issues while in the step of “npm install truffle-default-builder --save”. And i try to search in Stackoverflow, it seems that it needs to download the node-sass first with version@4.12.0 if the Node js version is @12.x. But after I successfully installs the node-sass, the installation still failed. Is anybody familiar with the installation for “truffle-default-builder” ? Thanks~

:computer: Environment
Distributor ID: Ubuntu
Description: Ubuntu 16.04.5 LTS
Release: 16.04
Codename: xenial
Node.js : 12.13.0
npm : 6.12.0

:1234: Code to reproduce

1 Like

Hi @timothy_chen,

Welcome to the community :wave:

What version of truffle are you using?

Can you share the dapp sample code GitHub repository?

There was previously issues with Node version 12, where either downgrading node or using specific tool versions were required. (Node 12 issue with Truffle)

OpenZeppelin Starter Kits are a great place to start with dapp development, see the documentation for details: https://docs.openzeppelin.com/starter-kits/2.3/

Hi,

so the error is an UTF8 error caused by a missing function. Normaly UTF8 is handled by libraries below node etc.
You are using an Ubuntu LTS Linux System, which might be sometimes outdated for rolling release stuff:

  • the npm system or node is not supported by you system version
  • this may be a reason you system is to new, -or to old.

If you have good luck update your system and do an npm update afterwards and things will run then.

regards,

1 Like

Thanks a lot, i will try to look up the issues from the description and see what else i can do.
Also. thanks for the provision of the other way of starting dapp development. Appreciate~

1 Like

Hi there~
Regarding the system concerning old or new, did you mean that i should use specific ubuntu version? (like 14.04 verison or 18.04 version?) Since i am trying to use the windows 7 with Microsoft Visual Studio 2008( suggestion from stackoverflow) recently.
Any suggestion for installing with which version of the ubuntu system?
Thanks~

1 Like

Hi @timothy_chen,

Are you running Ubuntu on a VM from Windows 7?

I am running Windows 10, and use Windows Subsystem for Linux with Ubuntu.

$ lsb_release -r -s
18.04
$ node --version
v10.16.0
$ npm --version
6.12.1

Thanks in advance ~
Yea, I am running Ubuntu on a VM from WIndows 10.
Appreciate for showing the version and the suggestion for using windows subsystem ~

1 Like

Let me explain,

the error results from create_string.cpp which is written in c++. So the error is not caused by any JavaScript code. So any component written in JavaScript is not the reason for this error. The message also says “no matching function” which means, the function is not availible at runtime of the application.

So this for my experience cause by non matching library versions. In case the library is missing the program would fail to start. This would result in a different error message.

Normaly this is caused by missing updates in almost any cases when newest Software applications like node or other things are used with older operating system libraries.

The other reason normaly is are broken package dependencies in the OS/Ubuntu, which is really hard to fix. May be npm brings also an own package dependency which may also a possible reason (but I believe it’s ok right now)

So coming to Ubuntu LTS version. LTS Version means Long Time Support. This results in longer maintenance with stable ABIs, meaning older library versions. So you pay the longer maintenance with not obtaining the last or bleeding edge versions of libraries.

So here it seems that a missing “library function” is caused by a newer library version, that is possible not maintained anymore.

So you have the following options:

  • Update the Ubuntu LTS version:
    sudo apt-get update && sudo apt-get dist-upgrade
    sudo apt-get autoremove to delete no longer needed packages

This insures you have the lates maintenace setup.
If it works then fine :wink:

  • next I would update npm to the lastest update to insure you have the latest version
  • them I would do an npm update and update all packages.
  • test if you system is working. If fine ok

It everything of this does not work. I recommend to make a virtualInstance (e.g. using VirtualBox) of a current non LTS version of Ubunto or another Linux distri.
Then install you setup and look if it works.

  • I’m pretty sure it will work from there.

I’m using debian 9 and debian 10 instances here. They are pretty equal and are running the the latest solidity/openZeppelin/node stuffe and it works. Ubuntu/Debian have the prettey same base system. So it should also work for you

My other advice is: Searching and Fixing package dependencies are very time consuming. Reinstall and test in a virtual OS-Instance just save a lot of time. (I did Linux distri struff work 10+ years)

That’s why the short answer for me is. Use the latest Ubuntu and don’t use LTS Versions for development, cause they made for server hosting.

So that’s the way I would do it personally

3 Likes

Hi @timothy_chen,

Were you able to resolve?