NAME
JS - JavaScript Modules on CPAN
SYSNOPSIS
> js-cpan
> js-cpan Foo.Bar
> ln -s `js-cpan Foo.Bar` Foo.Bar.js
DESCRIPTION
Some JavaScript modules can be installed from CPAN. This module comes with a utility called js-cpan
that helps you find JavaScript modules that have been installed on you system so that you can use them in various projects.
EXPLANATION
The JSAN project (http://openjsan.org) has successfully provided much of the groundwork to make JavaScript module distributions look and act like Perl module distributions.
For example, the basic file layout is similar, the Test::Harness and Test::Simple framework has been ported to JSAN, and most modules use Makefiles to set things up.
The Open JSAN project offers the tip off the iceberg in terms of being a CPAN for JavaScript. However it has a long way to go and not a lot of community to get it there.
Many projects require JavaScript components these days, and it would be nice to simply list them in the META.yml of your Perl project distributions.
There is a simple way to package non-Perl components into Perl/CPAN distributions. The components get installed in your Perl system but do not affect Perl in any other way.
JS is a module to explain and help maintain the JavaScript modules installed from CPAN.
Some module distributions will have both Perl and JavaScript components. Others will have only JavaScript components. All JavaScript modules and JavaScript module distributions should have a top-level-namespace of 'JS'.
JS MODULE AUTHOR HOWTO
It turns out that Perl's ExtUtils::MakeMaker will install *any* files that you put in the lib/
directory, into your perl's sitelib. So setting up a JavaScript distribution is very similar to setting on a Perl one.
Say you have a JavaScript module called Foo.Bar
. First create a distribution directory called: JS-Foo-Bar
. Put your JavaScript code in lib/JS/Foo/Bar.js
. Put your documentation in lib/JS/Foo/Bar.pod
. Your Makefile.PL should look something like this:
use inc::Module::Install;
name 'JS-Foo-Bar';
abstract 'Sample JavaScript Module Distribution';
version '0.01';
license 'lgpl';
all_from 'lib/JS/Foo/Bar.pod';
WriteAll;
Create a Changes
and README
file and dummy test.t
. CPAN module distributions should have these files.
Put your JavaScript tests in a directory called tests
. I'll write up more explicit instructions in a future release, but for now look at JS-YAML
on CPAN or any openjsan.org module as an example.
Now just run these commands:
perl Makefile.PL
make
make manifest
make dist
cpan-upload -user foo -passwd bar -mailto foo@bar.com Foo-Bar-0.01.tar.gz
That's it. You've joined the revolution. :)
NOTE: There is a working sample JavaScript module shipped with JS.pm
in the examples/Foo-Bar
directory.
AUTHOR
Ingy döt Net <ingy@cpan.org>
COPYRIGHT
Copyright (c) 2008. Ingy döt Net.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See http://www.perl.com/perl/misc/Artistic.html
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 153:
Non-ASCII character seen before =encoding in 'döt'. Assuming UTF-8