Last active
April 12, 2025 09:09
-
Star
(207)
You must be signed in to star a gist -
Fork
(39)
You must be signed in to fork a gist
-
-
Save adamreisnz/9edf1f48e19c104b81f8102a27de0940 to your computer and use it in GitHub Desktop.
Simple pure npm scripts build process
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "project-name", | |
"description": "Template for static sites", | |
"version": "1.0.0", | |
"homepage": "http://www.project-name.com", | |
"author": { | |
"name": "Adam Reis", | |
"url": "http://adam.reis.nz" | |
}, | |
"license": "UNLICENSED", | |
"private": true, | |
"repository": { | |
"type": "git", | |
"url": "" | |
}, | |
"bugs": { | |
"url": "" | |
}, | |
"engines": { | |
"node": ">=6.3.0", | |
"npm": ">=3.10.5" | |
}, | |
"scripts": { | |
"//": " --- GENERAL ---", | |
"reinstall": "rimraf node_modules && npm cache clean && npm install", | |
"start": "run-p serve watch", | |
"//": " --- CSS --- ", | |
"css:dev": "node-sass src/scss/index.scss --output-style compressed > dist/css/app.css", | |
"css:prod": "node-sass src/scss/index.scss --output-style compressed | postcss -u autoprefixer -b 'last 2 versions' > dist/css/app.css", | |
"//": " --- JAVASCRIPT --- ", | |
"js:dev": "babel src/js | uglifyjs > dist/js/app.js", | |
"js:prod": "babel src/js | uglifyjs -m -c > dist/js/app.js", | |
"js:vendor": "uglifyjs vendor/*.js > dist/js/vendor.js", | |
"//": " --- BUILD (GENERIC) --- ", | |
"clean": "rimraf dist", | |
"mkdirs": "mkdir -p dist/js && mkdir -p dist/css", | |
"copy:assets": "cp -r assets/* dist", | |
"copy:html": "find src -name '*.html' -type f -exec cp {} dist \\;", | |
"copy": "npm run copy:assets && npm run copy:html", | |
"//": " --- BUILD (DEVELOPMENT) --- ", | |
"prebuild:dev": "npm run clean && npm run mkdirs && npm run copy", | |
"build:dev": "npm run css:dev && npm run js:dev && npm run js:vendor", | |
"//": " --- BUILD (PRODUCTION) --- ", | |
"prebuild:prod": "npm run clean && npm run mkdirs && npm run copy", | |
"build:prod": "npm run css:prod && npm run js:prod && npm run js:vendor", | |
"postbuild:prod": "npm run hash", | |
"//": " --- HASHING --- ", | |
"hash": "hashmark **/(app|vendor).* -d md5 -l 8 -c dist '{dir}/{name}.{hash}{ext}' | replaceinfiles -S -s dist/**/*.html", | |
"posthash": "rm dist/css/app.css && rm dist/js/app.js", | |
"//": " --- LINTING & TESTING --- ", | |
"lint": "eslint src/js --fix", | |
"pretest": "npm run lint", | |
"test": "npm run istanbul -s", | |
"posttest": "npm run coverage -s", | |
"istanbul": "istanbul cover ./node_modules/mocha/bin/_mocha 'test/**/*.spec.js'", | |
"coverage": "open -a 'Google Chrome' ./coverage/lcov-report/index.html", | |
"//": " --- SERVING --- ", | |
"kill": "lsof -n -i:8080 | grep LISTEN | awk '{print $2}' | xargs kill -9", | |
"preserve": "npm run build:dev && npm run kill", | |
"serve": "browser-sync start -s --files 'dist/**/*.(js|css|html)' --ss 'dist' --port 8080 --reload-debounce 500", | |
"//": " --- WATCHING --- ", | |
"watch:assets": "onchange 'assets/**/*' -- npm run copy:assets", | |
"watch:vendor": "onchange 'vendor/**/*.js' -- npm run js:vendor", | |
"watch:html": "onchange 'src/**/*.html' -- npm run copy:html", | |
"watch:css": "onchange 'src/**/*.scss' -- npm run css:dev", | |
"watch:js": "onchange 'src/**/*.js' -- npm run js:dev", | |
"watch": "run-p watch:css watch:js watch:html watch:assets", | |
"//": " --- DEPLOYMENT & ZIP --- ", | |
"postversion": "git push && git push --tags", | |
"predeploy": "npm run build:prod", | |
"deploy": "firebase deploy --project project-name", | |
"prezip": "npm run build:prod", | |
"zip": "cd dist && zip -r -X ../app.zip ." | |
}, | |
"devDependencies": { | |
"autoprefixer": "^6.3.7", | |
"babel-cli": "^6.11.4", | |
"babel-preset-es2015": "^6.9.0", | |
"browser-sync": "^2.14.0", | |
"chai": "^3.5.0", | |
"chai-as-promised": "^5.3.0", | |
"dirty-chai": "^1.2.2", | |
"eslint": "^3.2.2", | |
"firebase-tools": "^3.0.5", | |
"hashmark": "^3.1.0", | |
"istanbul": "^1.0.0-alpha.2", | |
"mocha": "^2.5.3", | |
"mocha-clean": "^1.0.0", | |
"npm-run-all": "^4.1.5", | |
"node-sass": "^3.8.0", | |
"onchange": "^2.5.0", | |
"postcss-cli": "^2.5.2", | |
"replaceinfiles": "^1.1.4", | |
"rimraf": "^2.5.4", | |
"uglify-js": "^2.7.0" | |
} | |
} |
L41 is not working - in VSCode terminal (Windows) I have error:
find: missing argument to `-exec'
Trying this code with no success:
"copy:html": "find src -name \"*.html\" -type f -exec cp {} dist \\;"
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi ya'll, I just wrote an article that might be helpful to this discussion:
https://dev.to/yaireo/automate-npm-package-publish-git-versioning-5cfp