From a365fabd8bea7bd29b3273086541f391d51ba75d Mon Sep 17 00:00:00 2001 From: Brandur Date: Thu, 7 Jun 2018 16:23:52 -0700 Subject: [PATCH] Add `.npmignore` to create a leaner package Adds an `.npmignore` file to the project so that the final package sent to NPM is lighter. Tests, examples, and other resources are stripped out (it's easy to link back to this repository to refer to these if needed). I've written this is in an "inverted" style so that only by default everything is blacklisted, and we add back in the files and folders that we know we'll want. I verified that this does the right thing by using `npm pack`. Before the addition of `.npmignore`: ``` sh $ npm pack && tar -zxf stripe*.tgz && ls -R package/ stripe-6.1.0.tgz CHANGELOG.md README.md examples/ package.json LICENSE VERSION lib/ test/ package//examples: webhook-signing/ package//examples/webhook-signing: express.js package.json package//lib: Error.js StripeMethod.js resources/ MultipartDataGenerator.js StripeResource.js stripe.js StripeMethod.basic.js Webhooks.js utils.js package//lib/resources: Accounts.js EphemeralKeys.js Recipients.js ApplePayDomains.js Events.js Refunds.js ApplicationFeeRefunds.js ExchangeRates.js SKUs.js ApplicationFees.js FileUploads.js Sources.js Balance.js InvoiceItems.js SubscriptionItems.js BitcoinReceivers.js Invoices.js Subscriptions.js ChargeRefunds.js IssuerFraudRecords.js ThreeDSecure.js Charges.js LoginLinks.js Tokens.js CountrySpecs.js OrderReturns.js Topups.js Coupons.js Orders.js TransferReversals.js CustomerCards.js Payouts.js Transfers.js CustomerSubscriptions.js Plans.js UsageRecords.js Customers.js Products.js Disputes.js RecipientCards.js package//test: Error.spec.js flows.spec.js stripe.spec.js StripeResource.spec.js mocha.opts testUtils.js Webhook.spec.js resources/ utils.spec.js package//test/resources: Account.spec.js EphemeralKeys.spec.js Recipients.spec.js ApplePayDomains.spec.js Events.spec.js Refunds.spec.js ApplicationFeeRefunds.spec.js ExchangeRates.spec.js SKUs.spec.js ApplicationFees.spec.js FileUploads.spec.js Sources.spec.js Balance.spec.js InvoiceItems.spec.js SubscriptionItems.spec.js BitcoinReceivers.spec.js Invoices.spec.js Subscriptions.spec.js ChargeRefunds.spec.js IssuerFraudRecords.spec.js ThreeDSecure.spec.js Charges.spec.js LoginLinks.spec.js Tokens.spec.js CountrySpecs.spec.js OrderReturns.spec.js Topups.spec.js Coupons.spec.js Orders.spec.js TransferReversals.spec.js CustomerCards.spec.js Payouts.spec.js Transfers.spec.js CustomerSubscriptions.spec.js Plans.spec.js UsageRecords.spec.js Customers.spec.js Products.spec.js data/ Disputes.spec.js RecipientCards.spec.js package//test/resources/data: minimal.pdf ``` And after: ``` sh $ npm pack && tar -zxf stripe*.tgz && ls -R package/ stripe-6.1.0.tgz CHANGELOG.md LICENSE README.md VERSION lib/ package.json package//lib: Error.js StripeMethod.js resources/ MultipartDataGenerator.js StripeResource.js stripe.js StripeMethod.basic.js Webhooks.js utils.js package//lib/resources: Accounts.js EphemeralKeys.js Recipients.js ApplePayDomains.js Events.js Refunds.js ApplicationFeeRefunds.js ExchangeRates.js SKUs.js ApplicationFees.js FileUploads.js Sources.js Balance.js InvoiceItems.js SubscriptionItems.js BitcoinReceivers.js Invoices.js Subscriptions.js ChargeRefunds.js IssuerFraudRecords.js ThreeDSecure.js Charges.js LoginLinks.js Tokens.js CountrySpecs.js OrderReturns.js Topups.js Coupons.js Orders.js TransferReversals.js CustomerCards.js Payouts.js Transfers.js CustomerSubscriptions.js Plans.js UsageRecords.js Customers.js Products.js Disputes.js RecipientCards.js ``` Fixes #468. --- .npmignore | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .npmignore diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000000..ab0a7946e0 --- /dev/null +++ b/.npmignore @@ -0,0 +1,12 @@ +# This file is written to be a whitelist instead of a blacklist. Start by +# ignoring everything, then add back the files we want to be included in the +# final NPM package. +* + +# And these are the files that are allowed. +!/CHANGELOG.md +!/LICENSE +!/README.md +!/VERSION +!/package.json +!/lib/**/*