Giter Club home page Giter Club logo

Comments (3)

isaacs avatar isaacs commented on May 24, 2024

This is a limitation of globs. dist/lib/x.test.js actually does match dist/**/!(*.test.js)/**. First part "dist" matches the first part of the glob. Then the second part ** matches zero folders. The third part !(*.test.js) matches lib. The last part ** matches x.test.js.

I think it should work if you do this, though:

{
  "files": [
    "/dist/",
    "!/dist/**/*.test.js"
  ]
}

The second rule will override the first, and re-ignore those files.

from npm-packlist.

Shingyx avatar Shingyx commented on May 24, 2024

That works for my use case. Thanks!

Could you please clarify why the pattern !dist/**/!(*.test.js)/** is passed to the ignore-walker though? Is it necessary? What I specify in the package.json is dist/**/!(*.test.js), i.e. without the /** at the end.

I'm referring to this block in particular - it takes the pattern p and then converts that to !p and !p/** for the ignore-walker.

npm-packlist/index.js

Lines 186 to 188 in 270f534

super.onReadIgnoreFile('package.json', '*\n' + pkg.files.map(
f => '!' + f + '\n!' + f.replace(/\/+$/, '') + '/**'
).join('\n') + '\n', then)

from npm-packlist.

isaacs avatar isaacs commented on May 24, 2024

Because at that point it does not know if it's a directory or a file.

This behavior is overly aggressive in what it includes, though, and leads to problems. For example, "files": ["lib"] will include lib/.DS_Store, which you never want.

That'll be fixed in v2.

from npm-packlist.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.