32 lines
914 B
JavaScript
32 lines
914 B
JavaScript
const isPackageBin = require('./is-package-bin.js')
|
|
|
|
const tarCreateOptions = manifest => ({
|
|
cwd: manifest._resolved,
|
|
prefix: 'package/',
|
|
portable: true,
|
|
gzip: {
|
|
// forcing the level to 9 seems to avoid some
|
|
// platform specific optimizations that cause
|
|
// integrity mismatch errors due to differing
|
|
// end results after compression
|
|
level: 9,
|
|
},
|
|
|
|
// ensure that package bins are always executable
|
|
// Note that npm-packlist is already filtering out
|
|
// anything that is not a regular file, ignored by
|
|
// .npmignore or package.json "files", etc.
|
|
filter: (path, stat) => {
|
|
if (isPackageBin(manifest, path)) {
|
|
stat.mode |= 0o111
|
|
}
|
|
return true
|
|
},
|
|
|
|
// Provide a specific date in the 1980s for the benefit of zip,
|
|
// which is confounded by files dated at the Unix epoch 0.
|
|
mtime: new Date('1985-10-26T08:15:00.000Z'),
|
|
})
|
|
|
|
module.exports = tarCreateOptions
|