Skip to content

Unable to test CLI plugin from filesystem if node_modules directory is present #3757

Open
@i-hardy

Description

@i-hardy

Version

3.5.5

Environment info

System:
    OS: macOS 10.14.2
    CPU: (4) x64 Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
  Binaries:
    Node: 11.3.0 - ~/.nvm/versions/node/v11.3.0/bin/node
    Yarn: 1.13.0 - ~/.nvm/versions/node/v11.3.0/bin/yarn
    npm: 6.8.0 - ~/.nvm/versions/node/v11.3.0/bin/npm
  Browsers:
    Chrome: 73.0.3683.86
    Firefox: Not Found
    Safari: 12.0.2
  npmPackages:
    @vue/babel-helper-vue-jsx-merge-props:  1.0.0-beta.3
    @vue/babel-plugin-transform-vue-jsx:  1.0.0-beta.3
    @vue/babel-preset-app:  3.5.5
    @vue/babel-preset-jsx:  1.0.0-beta.3
    @vue/babel-sugar-functional-vue:  1.0.0-beta.3
    @vue/babel-sugar-inject-h:  1.0.0-beta.3
    @vue/babel-sugar-v-model:  1.0.0-beta.3
    @vue/babel-sugar-v-on:  1.0.0-beta.3
    @vue/cli-overlay:  3.5.1
    @vue/cli-plugin-babel: ^3.5.0 => 3.5.5
    @vue/cli-plugin-eslint: ^3.5.0 => 3.5.1
    @vue/cli-plugin-unit-jest: ^3.5.0 => 3.5.3
    @vue/cli-service: ^3.5.0 => 3.5.3
    @vue/cli-shared-utils:  3.5.1
    @vue/component-compiler-utils:  2.6.0
    @vue/eslint-config-prettier: ^4.0.1 => 4.0.1
    @vue/preload-webpack-plugin:  1.1.0
    @vue/test-utils: 1.0.0-beta.29 => 1.0.0-beta.29
    @vue/web-component-wrapper:  1.2.0
    eslint-plugin-vue: ^5.0.0 => 5.2.2
    jest-serializer-vue:  2.0.2
    vue: ^2.6.6 => 2.6.10
    vue-cli-plugin-tdd: file:/Users/imogen.hardy/tooling/vue-cli-plugin-tdd => 1.0.0
    vue-eslint-parser:  2.0.3
    vue-hot-reload-api:  2.3.3
    vue-jest:  3.0.4
    vue-loader:  15.7.0
    vue-rx: ^6.0.1 => 6.1.0
    vue-style-loader:  4.1.2
    vue-template-compiler: ^2.5.21 => 2.6.10
    vue-template-es2015-compiler:  1.9.1
  npmGlobalPackages:
    @vue/cli: 3.5.5

Steps to reproduce

Create a vue-cli plugin according to the steps in this blog post: https://itnext.io/how-to-build-a-simple-vue-cli-plugin-a2e1323de1a0 (or pull Natalia's plugin). Make sure it has some dependency to create a node_modules folder.

Create a project using vue create that includes Babel, ESLint, Sass and Jest

Run the UI for the project using vue ui

Add the plugin from the file system via the UI via the 'browse local plugin' button.

Attempt to install the plugin

What is expected?

The plugin is installed, or a meaningful error message is generated

What is actually happening?

A confusing error relating to a missing Babel dependency:

npm ERR! path /Users/imogen.hardy/tooling/test-project/node_modules/.staging/vue-cli-plugin-rx-a2eb339d/node_modules/@babel/code-frame
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename '/Users/imogen.hardy/tooling/test-project/node_modules/.staging/vue-cli-plugin-rx-a2eb339d/node_modules/@babel/code-frame' -> '/Users/imogen.hardy/tooling/test-project/node_modules/.staging/@babel/code-frame-ba895aff'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/imogen.hardy/.npm/_logs/2019-04-04T17_29_35_101Z-debug.log
 ERROR  command failed: npm install --loglevel error

Metadata

Metadata

Assignees

No one assigned

    Labels

    cannot reproduceWe cannot reproduce the problem with the given information. More env information needed.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions