Skip to content

Commit

Permalink
feat: ignore *.d.ts by default, include package.json in any case
Browse files Browse the repository at this point in the history
  • Loading branch information
develar committed Nov 11, 2016
1 parent edc39a8 commit 6ce683f
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 38 deletions.
6 changes: 4 additions & 2 deletions docs/Options.md
Original file line number Diff line number Diff line change
Expand Up @@ -290,11 +290,11 @@ Windows specific build options.

[build.files](#BuildMetadata-files) defaults to:
* `**/*`
* `!**/node_modules/*/{README.md,README,readme.md,readme,test}`
* `!**/node_modules/*/{CHANGELOG.md,README.md,README,readme.md,readme,test,__tests__,tests,powered-test,example,examples,*.d.ts}`
* `!**/node_modules/.bin`
* `!**/*.{o,hprof,orig,pyc,pyo,rbc}`
* `!**/._*`
* `!**/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,__pycache__,thumbs.db,.gitignore,.gitattributes,.editorconfig,.idea,appveyor.yml,.travis.yml,circle.yml}`
* `!**/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,__pycache__,thumbs.db,.gitignore,.gitattributes,.editorconfig,.flowconfig,.yarn-metadata.json,.idea,appveyor.yml,.travis.yml,circle.yml,npm-debug.log,.nyc_output,yarn.lock,.yarn-integrity}`

[Hidden files are not ignored by default](https://www.npmjs.com/package/glob#dots), but as you see, all files that should be ignored, are ignored by default.

Expand All @@ -305,6 +305,8 @@ If directory matched, all contents are copied. So, you can just specify `foo` to

Remember that default pattern `**/*` is not added to your custom, so, you have to add it explicitly — e.g. `["**/*", "!ignoreMe${/*}"]`.

`package.json` is added to your custom in any case.

May be specified in the platform options (e.g. in the `build.mac`).

## Multiple Glob Patterns
Expand Down
23 changes: 14 additions & 9 deletions src/platformPackager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -184,21 +184,26 @@ export abstract class PlatformPackager<DC extends PlatformSpecificBuildOptions>

log(`Packaging for ${platformName} ${Arch[arch]} using electron ${this.info.electronVersion} to ${path.relative(this.projectDir, appOutDir)}`)
await pack(this, appOutDir, platformName, Arch[arch], this.info.electronVersion, async () => {
const ignoreFiles = new Set([path.resolve(this.info.appDir, outDir), path.resolve(this.info.appDir, this.buildResourcesDir)])
const appDir = this.info.appDir
const ignoreFiles = new Set([path.resolve(appDir, outDir), path.resolve(appDir, this.buildResourcesDir)])
// prune dev or not listed dependencies
await dependencies(this.info.appDir, true, ignoreFiles)
await dependencies(appDir, true, ignoreFiles)

if (debug.enabled) {
debug(`Pruned dev or extraneous dependencies: ${Array.from(ignoreFiles).slice(2).join(", ")}`)
const nodeModulesDir = path.join(appDir, "node_modules")
debug(`Pruned dev or extraneous dependencies: ${Array.from(ignoreFiles).slice(2).map(it => path.relative(nodeModulesDir, it)).join(", ")}`)
}

const patterns = this.getFileMatchers("files", this.info.appDir, path.join(resourcesPath, "app"), false, fileMatchOptions, platformSpecificBuildOptions)
let defaultMatcher = patterns != null ? patterns[0] : new FileMatcher(this.info.appDir, path.join(resourcesPath, "app"), fileMatchOptions)
const patterns = this.getFileMatchers("files", appDir, path.join(resourcesPath, "app"), false, fileMatchOptions, platformSpecificBuildOptions)
let defaultMatcher = patterns != null ? patterns[0] : new FileMatcher(appDir, path.join(resourcesPath, "app"), fileMatchOptions)

if (defaultMatcher.isEmpty()) {
defaultMatcher.addPattern("**/*")
}
defaultMatcher.addPattern("!**/node_modules/*/{CHANGELOG.md,README.md,README,readme.md,readme,test,__tests__,tests,powered-test,example,examples}")
else {
defaultMatcher.addPattern("package.json")
}
defaultMatcher.addPattern("!**/node_modules/*/{CHANGELOG.md,README.md,README,readme.md,readme,test,__tests__,tests,powered-test,example,examples,*.d.ts}")
defaultMatcher.addPattern("!**/node_modules/.bin")
defaultMatcher.addPattern("!**/*.{o,hprof,orig,pyc,pyo,rbc,swp}")
defaultMatcher.addPattern("!**/._*")
Expand All @@ -214,7 +219,7 @@ export abstract class PlatformPackager<DC extends PlatformSpecificBuildOptions>
else {
warn(`"ignore" is deprecated, please use "files", see https://github.com/electron-userland/electron-builder/wiki/Options#BuildMetadata-files`)
}
rawFilter = deprecatedUserIgnoreFilter(deprecatedIgnore, this.info.appDir)
rawFilter = deprecatedUserIgnoreFilter(deprecatedIgnore, appDir)
}

let excludePatterns: Array<Minimatch> = []
Expand All @@ -233,8 +238,8 @@ export abstract class PlatformPackager<DC extends PlatformSpecificBuildOptions>

const filter = defaultMatcher.createFilter(ignoreFiles, rawFilter, excludePatterns.length ? excludePatterns : null)
const promise = asarOptions == null ?
copyFiltered(this.info.appDir, path.join(resourcesPath, "app"), filter, this.info.devMetadata.build.dereference || this.platform === Platform.WINDOWS)
: createAsarArchive(this.info.appDir, resourcesPath, asarOptions, filter)
copyFiltered(appDir, path.join(resourcesPath, "app"), filter, this.info.devMetadata.build.dereference || this.platform === Platform.WINDOWS)
: createAsarArchive(appDir, resourcesPath, asarOptions, filter)

const promises = [promise, unlinkIfExists(path.join(resourcesPath, "default_app.asar")), unlinkIfExists(path.join(appOutDir, "version"))]
if (this.info.electronVersion != null && this.info.electronVersion[0] === "0") {
Expand Down
66 changes: 39 additions & 27 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3213,49 +3213,49 @@ plur@^2.1.2:
irregular-plurals "^1.0.0"

power-assert-context-formatter@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/power-assert-context-formatter/-/power-assert-context-formatter-1.1.0.tgz#85ec15ec24309528ef1a2303d2c86e44423cd18f"
version "1.1.1"
resolved "https://registry.yarnpkg.com/power-assert-context-formatter/-/power-assert-context-formatter-1.1.1.tgz#edba352d3ed8a603114d667265acce60d689ccdf"
dependencies:
core-js "^2.0.0"
power-assert-context-traversal "^1.1.0"
power-assert-context-traversal "^1.1.1"

power-assert-context-traversal@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/power-assert-context-traversal/-/power-assert-context-traversal-1.1.0.tgz#d815975745a26d9280ec363625c819642edf0264"
power-assert-context-traversal@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/power-assert-context-traversal/-/power-assert-context-traversal-1.1.1.tgz#88cabca0d13b6359f07d3d3e8afa699264577ed9"
dependencies:
core-js "^2.0.0"
estraverse "^4.1.0"

power-assert-renderer-assertion@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.1.0.tgz#e512c49bdda30f905d601d1d11f7e0094b657ac3"
version "1.1.1"
resolved "https://registry.yarnpkg.com/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.1.1.tgz#cbfc0e77e0086a8f96af3f1d8e67b9ee7e28ce98"
dependencies:
power-assert-renderer-base "^1.1.0"
power-assert-util-string-width "^1.1.0"
power-assert-renderer-base "^1.1.1"
power-assert-util-string-width "^1.1.1"

power-assert-renderer-base@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/power-assert-renderer-base/-/power-assert-renderer-base-1.1.0.tgz#de8c0132c5ff42ccaab39034487d5c30bda154a5"
power-assert-renderer-base@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz#96a650c6fd05ee1bc1f66b54ad61442c8b3f63eb"

power-assert-renderer-diagram@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.0.tgz#91e28458fba754cb977ed81fe06d3eee4333f14d"
power-assert-renderer-diagram@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.1.tgz#7e0c82cc08a84b155e51b5ae94f59709778a65fb"
dependencies:
core-js "^2.0.0"
power-assert-renderer-base "^1.1.0"
power-assert-util-string-width "^1.1.0"
power-assert-renderer-base "^1.1.1"
power-assert-util-string-width "^1.1.1"
stringifier "^1.3.0"

power-assert-renderer-succinct@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/power-assert-renderer-succinct/-/power-assert-renderer-succinct-1.1.0.tgz#3f024af776eac7aad9b33105b93f7ba18e7ce22d"
version "1.1.1"
resolved "https://registry.yarnpkg.com/power-assert-renderer-succinct/-/power-assert-renderer-succinct-1.1.1.tgz#c2a468b23822abd6f80e2aba5322347b09df476e"
dependencies:
core-js "^2.0.0"
power-assert-renderer-diagram "^1.1.0"
power-assert-renderer-diagram "^1.1.1"

power-assert-util-string-width@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/power-assert-util-string-width/-/power-assert-util-string-width-1.1.0.tgz#63d2c714c0cddb8dce0e0d7cc5f9851be94ddd98"
power-assert-util-string-width@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/power-assert-util-string-width/-/power-assert-util-string-width-1.1.1.tgz#be659eb7937fdd2e6c9a77268daaf64bd5b7c592"
dependencies:
eastasianwidth "^0.1.1"

Expand Down Expand Up @@ -3393,9 +3393,9 @@ readable-stream@^1.1.8, readable-stream@~1.1.9:
isarray "0.0.1"
string_decoder "~0.10.x"

readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@~2.1.4:
version "2.1.5"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0"
readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.0.5:
version "2.2.1"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.1.tgz#c459a6687ad6195f936b959870776edef27a7655"
dependencies:
buffer-shims "^1.0.0"
core-util-is "~1.0.0"
Expand All @@ -3416,6 +3416,18 @@ readable-stream@~2.0.0, readable-stream@~2.0.5:
string_decoder "~0.10.x"
util-deprecate "~1.0.1"

readable-stream@~2.1.4:
version "2.1.5"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0"
dependencies:
buffer-shims "^1.0.0"
core-util-is "~1.0.0"
inherits "~2.0.1"
isarray "~1.0.0"
process-nextick-args "~1.0.6"
string_decoder "~0.10.x"
util-deprecate "~1.0.1"

readdir-scoped-modules@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747"
Expand Down

0 comments on commit 6ce683f

Please sign in to comment.