text-dep

A text file dependency calculating merging HTTP server.

Usage no npm install needed!

<script type="module">
  import textDep from 'https://cdn.skypack.dev/text-dep';
</script>

README

text-dep

This is a dependency based, text file merging server where you wil define on which files a given, say js, file depends on, so that dependencies will be prepended to the requested file on response.

Obs.: Should not be used for binary files (though it usualy works).

Warning: This was only tested in Windows 10.

Warning: This IS NOT production ready.

Obs.: For commands, be sure to use an elevated console (admin rights).

Prerequisites

  • You MUST be running Windows 10 or Linux (untested).
  • You MUST have up to date Node JS installed.
  • You MUST have up to date NPM installed.
  • If running Windows 10, you must run the following command: npm install --global --production windows-build-tools. Obs.: It may fail sometimes.
  • If running Windows 10, you must ensure Phyton 2.7 (installed in the previous item) is in your Path.

Usage

Step 1

Create a YAML file with the name you want. I will call mine: settings.yml (this one will be used in step 5).

Step 2

In settings.yml, write the following content:

sourceDir: ./res
port: 8001
  1. sourceDir must point to where your js/css/txt/etc... files will be.
  2. This path must be relative to settings.yml path.
  3. port defines where the HTTP server will be listening for requests.
  4. defaultExt can define a fallback file extension for when no one is found.
Step 3

In source directory, create a file named dependencies.yml with the following content:

my-file.js:
  - parent1.js
  - subdir/parent2.js
Step 4

In source directory, create the following files:

// my-file.js
alert('my file running!');

// parent1.js
alert('parent1 running!');

// subdir/parent2.js
alert('parent2 running!');
Step 5

Install the server as a service with the following comands:

npm install -g text-dep
text-dep-service install my-project "/absolute/path/to/my/settings.yml"
Step 6
  • On Windows, start the server running: net start text-dep-my-project on elevated shell.
  • On Debian/Ubuntu, start the server running: sudo service text-dep-my-project start.
Step 7

In your browser, get http://127.0.0.1:8001/js?my-file and done!

The query string can be composed of multiple entries delimited by &. And the url path must be a file extension (such as js).

Eg.: example.com/css?my-file&subdir/other-file This will load my-file.css, subdir/other-file.css and all their dependencies (as defined in dependencies.yml) concatened in one response.

Have Questions?

Please, if you have any questions, suggestions, doubts, etc.. Don't hesitate to open issues.

Thanks!