Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | 7x 7x 2x 2x 2x 2x 2x 2x 2x 7x 1x 1x 1x 1x 1x 1x | import {
PackageJsonEditor,
PostcssConfigEditor,
allDoExist,
allDoNotExist,
install,
uninstall
} from '../api';
const POSTCSS_DEPENDENCIES = [
'cssnano',
'postcss',
'postcss-cli',
'postcss-reporter',
'postcss-safe-parser',
'postcss-import',
'postcss-preset-env',
'stylelint',
'stylelint-config-recommended'
];
/**
* @type {task[]}
* @see https://github.com/postcss/postcss
*/
export const addPostcss = [
{
text: 'Create PostCSS config file',
task: async ({useSnowpack}) => {
const plugins = [
`require('stylelint')({config: {extends: 'stylelint-config-recommended'}})`,
`require('postcss-import')()`,
`require('postcss-preset-env')({stage: 0})`,
`require('cssnano')()`,
`require('postcss-reporter')({clearReportedMessages: true})`
];
await (new PostcssConfigEditor())
.create()
.extend({plugins})
.extend(useSnowpack ? {map: 'false'} : {})
.commit();
},
condition: () => allDoNotExist('postcss.config.js')
},
{
text: 'Add PostCSS tasks to package.json',
task: async ({assetsDirectory, outputDirectory}) => {
const scripts = {
'build:css': `postcss ${assetsDirectory}/css/style.css --dir ${outputDirectory}`,
'watch:css': 'npm run build:css -- --watch'
};
await (new PackageJsonEditor())
.extend({scripts})
.commit();
},
condition: () => allDoExist('package.json')
},
{
text: 'Install PostCSS dependencies',
task: ({skipInstall}) => install(POSTCSS_DEPENDENCIES, {dev: true, skipInstall}),
condition: ({skipInstall}) => !skipInstall && allDoExist('package.json')
}
];
export const removePostcss = [
{
text: 'Delete PostCSS config file',
task: async () => {
await (new PostcssConfigEditor())
.delete()
.commit();
},
condition: () => allDoExist('postcss.config.js')
},
{
text: 'Remove PostCSS build task from package.json',
task: async () => {
const scripts = {
'build:css': undefined,
'watch:css': undefined
};
await (new PackageJsonEditor())
.extend({scripts})
.commit();
},
condition: () => allDoExist('package.json')
},
{
text: 'Uninstall PostCSS dependencies',
task: () => uninstall(POSTCSS_DEPENDENCIES),
condition: () => allDoExist('package.json') && (new PackageJsonEditor()).hasAll(...POSTCSS_DEPENDENCIES)
}
];
export default addPostcss; |