Gathering detailed insights and metrics for gulp4-ps-tasks
Gathering detailed insights and metrics for gulp4-ps-tasks
Gathering detailed insights and metrics for gulp4-ps-tasks
Gathering detailed insights and metrics for gulp4-ps-tasks
A collection of gulp tasks for PowerSchool plugin development.
npm install gulp4-ps-tasks
Typescript
Module System
Node Version
NPM Version
JavaScript (100%)
Total Downloads
0
Last Day
0
Last Week
0
Last Month
0
Last Year
0
Apache-2.0 License
1 Stars
68 Commits
3 Watchers
2 Branches
3 Contributors
Updated on Jun 27, 2018
Latest Version
0.1.10
Package Id
gulp4-ps-tasks@0.1.10
Unpacked Size
23.47 kB
Size
8.25 kB
File Count
5
NPM Version
6.13.4
Node Version
12.14.1
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
25
gulp4-ps-tasks
is a collection of Gulp tasks that makes it easier and faster to develop PowerSchool customizations and deploy them to a PowerSchool "image" server (cdn).
npm install -g babel babel-cli babel-register babel-plugin-transform-es2015-modules-commonjs
npm install --save-dev gulp-ps-tasks
.babelrc
and local.gulpfile.babel.js
to the root of your project folder.local.gulpfile.babel.js
to gulpfile.babel.js
.A gulp.config.json
file is required for the following information:
gulp.config.json
file location can be specified one of two ways. As soon as a config file is found, the search for a config file stops and the first config file found is used. Note that the config path should only include the path to your gulp.config.json
file -- it should not include the gulp.config.json
filename itself. Trailing slashes don't matter, they will be removed if they're included.gulp.config.json
is placed in your project folder.PSTASKS_ROOT
, to the directory path of your gulp.config.json
file.If you have a large number of plugins, I recommend using method 3 because it allows you to create and maintain a single gulp.config.json
file that can be used across all of your plugins. However, if you want it to just work, use method 2.
The following config example should be used as a starting point for your own gulp.config.json
file.
{
"ps_test1": {
"ps_url": "https://pstest1.example.com",
"api_url": "https://psappstest.example.com"
},
"ps_prod": {
"ps_url": "https://ps.example.com",
"api_url": "https://psapps.example.com"
},
"default_deploy_target": "ps_prod"
}
npm
To make a new release of this package, you'll need to be logged in to npmjs.com
as icsd
.
To sign in to npmjs.com
:
$ npm login
Username: icsd
Password:
Email: (this IS public) data@ironmail.org
Logged in as icsd on https://registry.npmjs.org
package.json
file and change the "package:"
value. This package follows Semantic Versioning. The new version you choose for this package should conform to Semantic Versioning's guidelines for MAJOR, MINOR, or PATCH changes.gulp createPackage
to compile this packagecd dist/
npm publish
to publish to the npm
registryNote: It's important you run npm publish
from the dist/
directory. If you publish this package without being in the dist/
directory, you'll publish the non-compiled version of this package and it will not be usable.
After you publish a new version of this package, you'll need to change your PowerSchool plugin's package.json
to use the new version. To do this, cd
to the plugin directory and run:
yarn upgrade --latest gulp4-ps-tasks
Run a task using gulp {taskname}
preprocess
Invokes the preprocessor. Separated out as a reusable Gulp pipe that can be be used by an Gulp task. At one point in this package's history, there were multiple tasks that called the preprocessor
, but that is no longer the case, so the the index.js
code could be refactored to put the code in the preprocessor
lazypipe
into the buildPreprocess
task, but that isn't necessary for this package to properly function.
clean
Removes all files and folders in the dist/
folder
zip
Takes all files and folders that are within the dist/
folder (the dist/
folder itself is not included), and creates a plugin.zip
ZIP archive file. This plugin.zip
file is stored in the dist/
folder.
tl;dr
: Run gulp createPkg
to compile your code into a plugin.zip
file that can be installed as a PowerSchool plugin.
Build tasks are a basic building-block tasks that performs a process on multiple files.
buildPreprocess
Uses preprocessor to insert the PowerSchool URL and "API URL" into your project. We do this dynamic insertion of URLs so we don't have to manually hard-code the URL to a test instance of PowerSchool while we're developing, and then have to change it when deploying to production.
imgCopy
Recursively copies all files in the plugin/web_root/images/**/*
directory to the dist/web_root/images
directory.
buildWebpack
Calls the webpack module bundler. It uses the webpack.prod.babel.js
file found in your PowerSchool plugin's directory for its configuration. This task is only meant to be run for production builds, so it won't be used in development. The Webpack Dev Server
will build and make available the compiled files via a web server for our development environment.
Task runners handle the calling of Build tasks to create a larger workflow.
runBuildTasks
Runs all of the build tasks defined in the Build tasks section above. buildPreprocess
and imgCopy
are run in series (wait for the first task to complete before running the next one), and while those two tasks are running, the buildWebpack
task is run. We run the build tasks in this way to try to keep build times as low as possible.
Orchestrators should perform a full build. They should start running the clean
Utility task, call one or more Task Runners to perform workflows, then call zip
to create the plugin file. For now, this package provides one Orchestrator
, createPkg
.
createPkg
Top-level plugin package creation task. Run this task to create a usable plugin that can be installed in PowerSchool. Cleans the dist/
directory by calling the clean
Utility task, runs the runBuildTasks
Task Runner, then creates a plugin.zip
file with the resulting files by calling the zip
Utility task.
No vulnerabilities found.
Reason
no binaries found in the repo
Reason
license file detected
Details
Reason
Found 0/30 approved changesets -- score normalized to 0
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
no SAST tool detected
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
75 existing vulnerabilities detected
Details
Score
Last Scanned on 2025-07-14
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More