codekingpro/portable-devtools
114k
1const isPackageBin = require('./is-package-bin.js')
2
3const tarCreateOptions = manifest => ({
4 cwd: manifest._resolved,
5 prefix: 'package/',
6 portable: true,
7 gzip: {
8 // forcing the level to 9 seems to avoid some
9 // platform specific optimizations that cause
10 // integrity mismatch errors due to differing
11 // end results after compression
12 level: 9,
13 },
14
15 // ensure that package bins are always executable
16 // Note that npm-packlist is already filtering out
17 // anything that is not a regular file, ignored by
18 // .npmignore or package.json "files", etc.
19 filter: (path, stat) => {
20 if (isPackageBin(manifest, path)) {
21 stat.mode |= 0o111
22 }
23 return true
24 },
25
26 // Provide a specific date in the 1980s for the benefit of zip,
27 // which is confounded by files dated at the Unix epoch 0.
28 mtime: new Date('1985-10-26T08:15:00.000Z'),
29})
30
31module.exports = tarCreateOptions
32 