5.1.8 • Published 4 years ago

crankshaft v5.1.8

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

Crankshaft

Crankshaft is a very simple build module for node.js built with ES7 async/await. It prefers code over configuration and encourages you to use stuff you already know like bash commands and built-in node functions. Also monitors files for changes after the build.

HOWTO

  1. npm install 'crankshaft'
  2. Write a build.js file
  3. node build.js

The build.js file

This example should help you get started. Check the tests directory to see more examples.

describe("Crankshaft build", () => {

    it("A full flow example must run without errors (*nix only)", () => {
        const matchingFiles = [];
        const build = crankshaft.create({ threads: 4 });

        let buildStarted = false;
        build.onStart(() => {
            buildStarted = true;
        });

        let buildCompleted = false;
        build.onStart(() => {
            buildCompleted = true;
        });

        const copyTextAndHtmlFiles = function() {
            //Copy all txt and html files, except zomg.txt and those in the temp/ directory
            this.watch(["*.txt", "*.html", "!src/zomg.txt", "!temp/"], async function(filePath) {
                await exec(`cp ${filePath} temp`);
            }, "copy_text_and_html_files");
        }
        //Start this task list in the "fixtures" directory
        build.configure(copyTextAndHtmlFiles, 'fixtures');

        let configStarted = false;
        let configCompleted = false;
        const copyJsonFiles = function() {
            //task lists also have an onStart
            this.onStart(() => {
                //You can do something useful here.
                //await exec(`ls src`);

                configStarted = true;
            });

            //Copy all json files, except those in the temp/ directory
            this.watch(["*.txt", "!temp/"], async function(filePath) {
                await exec(`cp ${filePath} temp`);
            }, "copy_json_files");

            //task lists also have an onComplete
            this.onComplete(() => {
                //You can wrap up things here.
                //await exec(`ls src`);

                configCompleted = true;
            });
        }
        //Start this task list in the "fixtures" directory
        build.configure(copyJsonFiles, 'fixtures');

        return crankshaft.run(build, false).then(() => {
            buildStarted.should.be.true();
            buildCompleted.should.be.true();

            configStarted.should.be.true();
            configCompleted.should.be.true();

            //Number of files in the temp directory must be 5
            const files = fs.readdirSync("fixtures/temp");
            files.length.should.equal(6);
        });
    });
});
5.1.8

4 years ago

5.1.7

6 years ago

5.1.6

8 years ago

5.1.5

8 years ago

5.1.4

8 years ago

5.1.3

8 years ago

5.1.2

8 years ago

5.1.1

8 years ago

5.1.0

8 years ago

5.0.2

8 years ago

5.0.1

8 years ago

5.0.0

8 years ago

4.0.8

8 years ago

4.0.7

9 years ago

4.0.6

9 years ago

4.0.5

9 years ago

4.0.4

9 years ago

4.0.3

9 years ago

4.0.2

9 years ago

4.0.1

9 years ago

4.0.0

9 years ago

3.0.1

9 years ago

3.0.0

9 years ago

2.0.3

9 years ago

2.0.2

9 years ago

2.0.1

9 years ago

2.0.0

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago

0.8.0

9 years ago

0.7.3

9 years ago

0.7.2

9 years ago

0.7.1

9 years ago

0.7.0

9 years ago

0.6.15

9 years ago

0.6.14

9 years ago

0.6.13

9 years ago

0.6.12

9 years ago

0.6.11

9 years ago

0.6.9

9 years ago

0.6.8

9 years ago

0.6.7

9 years ago

0.6.5

9 years ago

0.6.4

9 years ago

0.6.3

9 years ago

0.6.2

9 years ago

0.6.1

9 years ago

0.6.0

9 years ago

0.5.1

9 years ago

0.5.0

9 years ago

0.4.8

9 years ago

0.4.7

9 years ago

0.4.6

9 years ago

0.4.5

9 years ago

0.4.4

9 years ago

0.4.3

9 years ago

0.4.1

9 years ago

0.4.0

9 years ago

0.3.1

9 years ago

0.3.0

9 years ago

0.2.0

9 years ago

0.1.2

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago