Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unexpected files when installing a local module #1267

Open
Arttse opened this issue Oct 19, 2016 · 5 comments
Open

Unexpected files when installing a local module #1267

Arttse opened this issue Oct 19, 2016 · 5 comments

Comments

@Arttse
Copy link

Arttse commented Oct 19, 2016

Do you want to request a feature or report a bug?
bug

What is the current behavior?
In real time it may be tens, maybe even thousands of modules.
I'll give an easy example for clarity.

I have 2 local modules:

  1. my-module-1
  2. my-module-2

Both modules use Git without remote repo. my-module-1 is connected to the my-module-2 locally.

Tree my-module-1:

~$ tree my-module-1/ -L 1 -a
my-module-1/
|-- .editorconfig
|-- .git
|-- .gitattributes
|-- .gitignore
|-- .npmignore
|-- index.js
|-- lib
|-- package.json
`-- readme.md

2 directories, 7 files

.npmignore file content in the my-module-1:

# All
*

# But not
!lib/**
!readme.md
!index.js
!package.json

Tree my-module-2:

~$ tree my-module-2/ -L 1 -a
my-module-2/
|-- .git
`-- package.json

1 directory, 1 file

package.json file content in the my-module-2:

{
  "private" : true,
  "dependencies": {
    "my-module-1": "file:../my-module-1"
  }
}

When I install dependencies in my-module-2 by yarn i see tree:

~/my-module-2$ tree node_modules/my-module-1/ -L 1 -a
node_modules/my-module-1/
|-- .editorconfig
|-- .git
|-- .gitattributes
|-- .gitignore
|-- .npmignore
|-- index.js
|-- lib
|-- package.json
`-- readme.md

2 directories, 7 files

It turns out that yarn simply copies all folders and files from the my-module-1.

If the current behavior is a bug, please provide the steps to reproduce.
Install yarn by npm globally:

$ npm i -g yarn

Install dependencies in my-module-2 by yarn:

~/my-module-2$ yarn
yarn install v0.16.1
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 0.19s.

What is the expected behavior?
Like npm i.

Tree:

~/my-module-2$ tree node_modules/my-module-1/ -L 1 -a
node_modules/my-module-1/
|-- index.js
|-- lib
|-- package.json
`-- readme.md

1 directory, 3 files

As you can see, npm don't copy all files and folders, because it uses file .npmignore. Even if you are not using file .npmignore, then npm still does not copy the folder .git and uses .gitignore for ignore.
But yarn copies all. Maybe there is some kind of .yarnignore?

Please mention your node.js, yarn and operating system version.

~$ node --version
v6.9.1

~$ npm --version
3.10.8

~$ yarn --version
0.16.1

~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:    16.04
Codename:   xenial

~$ uname -a
Linux undefined 4.4.0-45-generic #49-Ubuntu SMP DATE x86_64 x86_64 x86_64 GNU/Linux
@danielkcz
Copy link

danielkcz commented Nov 30, 2016

I believe that Yarn should support .npmignore file as well to ease up on the transition. Also requiring developers to actually maintain both ignore files (which would be completely identical) seems silly.

@yevhen-hryhorevskyi
Copy link

I faced with the same issue. It seems that Yarn still doesn't support .npmignore at v0.19.1.

@madhavarshney
Copy link

madhavarshney commented Jun 14, 2018

Can this issue be fixed? As of v1.8.0, local module installs still do not respect .npmignore. For locally installing a large git repository, yarn install takes very long each time the command is run. I can provide a repro repo if that helps. Is there a known workaround? I was hoping #5979 would fix this issue, but manually applying the changes doesn't seem to help.

@DarwinniwraD
Copy link

.npmignore not working for v1.17.3

~$ node --version
v12.10.0
~$ npm --version
6.11.3
~$ yarn --version
1.17.3

.yarnignore & .npmignore

.DS_Store
.babelrc
.browserslistrc
.editorconfig
.eslintignore
.eslintrc.js
.git
.gitignore
.npmrc
/build
/node_modules
/src
/static
webpack*

package.json conf, like this:

{
  "name": "local-project",
  "version": "0.0.1",
  "main": "main.js",
  "license": "MIT",
  "files": [
    "dist",
    "yarn.lock",
    "README.md"
  ]
}

@radixdev
Copy link

Still not working for 1.22.5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants