JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 38402
  • Score
    100M100P100Q150003F
  • License MIT

A webpack plugin to set permissions for your output files and folders

Package Exports

  • webpack-permissions-plugin
  • webpack-permissions-plugin/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (webpack-permissions-plugin) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Webpack Permissions Plugin

A webpack plugin to manage the permissions of output files and directories
Tested with Webpack 2, 3 and 4

Install

  • Yarn: yarn add -D webpack-permissions-plugin
  • Npm: npm i -D webpack-permissions-plugin

Usage

buildFolders (String: path) The directories to chmod recursively
buildFiles (String: path) The specific files to chmod

Files under buildFolders get file-specific permissions.

Simple: Directories 644, Files 755
const PermissionsOutputPlugin = require('webpack-permissions-plugin');

plugins.push(
  new PermissionsOutputPlugin({
    buildFolders: [
      path.resolve(__dirname, 'resources/'),
      path.resolve(__dirname, 'dist/')
    ],
    buildFiles: [
      path.resolve(__dirname, 'someFile.js'),
      path.resolve(__dirname, 'dist/app.js')
    ]
    // dist/app.js is redundant, it already got 755 by being included in the buildFolder above
  })
);
Advanced: Per-path modes

Mode: an octal string or octal integer (eg. 755 or 0o755)

const PermissionsOutputPlugin = require('webpack-permissions-plugin');

plugins.push(
  new PermissionsOutputPlugin({
    buildFolders: [
      {
        path: path.resolve(__dirname, 'resources/'), // Everything under resources/ gets these modes
        fileMode: '755',
        dirMode: '644'
      },
      {
        path: path.resolve(__dirname, 'dist/'), // Everything under dist/ gets these modes
        fileMode: '755',
        dirMode: '644'
      }
    ],
    buildFiles: [
      {
        path: path.resolve(__dirname, 'someFile.js'),
        fileMode: '755'
      },
      {
        path: path.resolve(__dirname, 'dist/app.js'),
        fileMode: '777' // Overrides previous dist/ mode
      }
    ]
  })
);