Nativescript-cli: error "The path argument must be of type string. Received null." when trying to build plugin or create new plugin since nativescript-cli 7.x

Created on 16 Sep 2020  路  7Comments  路  Source: NativeScript/nativescript-cli

Environment
Provide version numbers for the following components (information can be retrieved by running tns info in your project folder or by inspecting the package.json of the project):

  • CLI: 7.0.8
  • Cross-platform modules: -
  • Android Runtime: -
  • iOS Runtime: -
  • Plugin(s): -
**Just in case this is important to know:**
    - Node: 12.18.1

Describe the bug
When I go to the src folder of my plugin and try to run npm run build, the process fails with the following error message:
The "path" argument must be of type string. Received undefined.

When I try to create a new plugin using tns create plugin myplugin, I get a similar error message:
The "path" argument must be of type string. Received null.

Full log:

? What is your GitHub username?
(will be used to update the Github URLs in the plugin's package.json) NativeScriptDeveloper
? What will be the name of your plugin?
(use lowercase characters and dashes only) testplugin
? Do you want to include a "TypeScript NativeScript" application linked with your plugin to make development easier? Yes
? Do you want to include an "Angular NativeScript" application linked with your plugin to make development easier? No
NativeScript Plugin Seed Configuration
Using Testplugin as the TypeScript Class name..
Will now rename some files..
Creating 'TypeScript' application from latest published template...
You are using the deprecated nsconfig.json file. Just be aware that NativeScript 7 has an improved nativescript.config.(js|ts) file for when you're ready to upgrade this project.
The "path" argument must be of type string. Received null
TypeScript-NativeScript application created at: ../demo
Adjusting scripts..
Installing plugin to ../demo ...
Error: Command failed: cd ../demo && tns plugin add ../src
/bin/sh: line 0: cd: ../demo: No such file or directory

at ChildProcess.exithandler (child_process.js:303:12)
at ChildProcess.emit (events.js:315:20)
at maybeClose (internal/child_process.js:1021:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5) {

killed: false,
code: 1,
signal: null,
cmd: 'cd ../demo && tns plugin add ../src'
}
Solution for myplugin was successfully created.

When I try to build this plugin, I get the same error message as for my already existing plugin.

To Reproduce
see description

Expected behavior
Creating a new plugin should not throw this error.
Building an existing plugin should not throw this error.

Sample project
-

Additional context
-

bug

Most helpful comment

The commit above fixes the ns plugin build command - the ns plugin create command has to be fixed in the plugin seed, and should be addressed separately.

For those having issues with ns create project - make sure you are using the latest templates, they are now scoped under the @nativescript scope. For example ns create myTSApp --template @nativescript/template-blank-ts

All 7 comments

It seems that the plugin is built (or created) as expected, as I can run the demo app and use the plugin's functionalities correctly. The message

executing 'tns plugin build'
Error: Command failed: tns plugin build
The "path" argument must be of type string. Received undefined

confused me, I was thinking that the plugin was not built at all, but that seems to work.

I also tried installing the latest NodeJS (v14.11.0) but that error message still appears.

I also encountered a similar error message "The 'path' argument must be of type string. Received undefined" when I tried to run 'ns migrate' on my project. The prior message was 'Migrating project to use nativescript.config.ts'.

Same with cli version 7.0.10.

I can't create a project . It display the same error :
tns create my-tab-vue --template tns-template-tab-navigation-vue
The "path" argument must be of type string. Received null

And it is not even creating a single file for the project.

I am also running into this with 7.0.10 when running tns plugin build. It is also complaining about the use of nsconfig.json but there is no nsconfig.json in the plugin project

You are using the deprecated nsconfig.json file. Just be aware that NativeScript 7 has an improved nativescript.config.(js|ts) file for when you're ready to upgrade this project.
The "path" argument must be of type string. Received type undefined

when i run this command tns create my-blank-react --template tns-template-blank-react
I get this error :
You are using the deprecated nsconfig.json file. Just be aware that NativeScript 7 has an improved nativescript.config.(js|ts) file for when you're ready to upgrade this project.
The "path" argument must be of type string. Received null
in my prompt please help me

The commit above fixes the ns plugin build command - the ns plugin create command has to be fixed in the plugin seed, and should be addressed separately.

For those having issues with ns create project - make sure you are using the latest templates, they are now scoped under the @nativescript scope. For example ns create myTSApp --template @nativescript/template-blank-ts

The "path" argument must be of type string. Received undefined

Was this page helpful?
0 / 5 - 0 ratings