Hi Grafana Experts,
We are migrating our solution from windows to dockers, so, we are migrating our builds from Windows to Linux.
We have a a plugin that is a DataSource, with a backend (go) and frontend (react and typescript).
The build process of the backend went smoothly, we used an image with go, placed the code on the right place we run the compilation command and a plugin back end is born.
Now, we are working with the frontend and in windows we got no errors:
With the same code on Linux, we have several linting problems that we skipped to be able to reach the build phase and on the build phase we got the following errors:
âś– Cannot read property 'name' of null
Trace: TypeError: Cannot read property 'name' of null
at /node_modules/@grafana/toolkit/src/config/webpack.plugin.config.js:61:21
at Array.forEach (<anonymous>)
at /node_modules/@grafana/toolkit/src/config/webpack.plugin.config.js:58:13
at Generator.next (<anonymous>)
at fulfilled (/node_modules/@grafana/toolkit/node_modules/tslib/tslib.js:115:62)
at /node_modules/@grafana/toolkit/src/cli/utils/useSpinner.js:20:21
at Generator.throw (<anonymous>)
at rejected (/node_modules/@grafana/toolkit/node_modules/tslib/tslib.js:116:69)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
yarn run v1.22.17
Node.js v14.19.1
grafana/toolkit v9.3.6 and 8.3.4 (we tried with both toolkits - we deleted the node_modules on each switch followed by yarn install, 9.3.6 gives out less linting errors)
Typescript was changed to 3.9.4 using: npm install typescript@3.9.4 (the previous version for typescript was 4.4.0 and we had a warning that it might cause some problems)
I’ve tried many things during the last 2 days and I’m stuck at this moment. Any gentle soul can help me out?
Hi @lpinho it is hard to tell without seeing the code itself. My best guess is that there’s something wrong in the file system and toolkit is not getting the cwd correctly.
What I can advice you, now that you are doing migration work is to move from @grafana/toolkit and start using @grafana/create-plugin. You can find a guide to migrate from toolkit to create-plugin here plugin-tools/README.md at main · grafana/plugin-tools · GitHub
Hi grafanad404,
Thanks for your reply.
The current versions are already certified by the company QA team, so, to migrate its a lengthy process, so it would be great if we could make this work using the current toolset.
The code that is returning the error is from the toolkit, not from our code, so we don’t know what the code does.
Yesterday, I made yet another test, I used an ubuntu 20.04 wsl installation of ubuntu and I was able to compile the same code.
Then, I used an image based on Ubuntu and did the same steps to setup the environment and the error is the the same has before.
Yes I followed the code from your first post which is what tells me that there’s something wrong in the file system. This code uses process.cwd to get your current plugin path and find all the module.js files inside. It seems that it is not working.
My best advice without access to the source code myself is to try to debug the toolkit error and see why it is not finding the module.js in your specific case or use the image of ubuntu that works for your case.
We haven’t seen a problem like this before in the toolkit so I am guessing this is a specific problem to your migration process.
As as side note, coming from windows to linux, maybe there’s something wrong in the file names because of encoding? worth to check.
You are right
Its not a problem with the file system, its a problem how I was using the file system.
My mistake, I didn’t defined the workdir for this image, so, when I copied the source code from the host to the image, it was writing everything on the root (/) of the file system.
So, after changing the Dockerfile to set the workdir, it compiled successfully.