docs: Now atom-shell's version should be used when building modules.
This commit is contained in:
parent
eb55f1cf47
commit
add4e3c6f5
1 changed files with 27 additions and 12 deletions
|
@ -15,14 +15,29 @@ $ apm install .
|
||||||
But you should notice that `apm install module` won't work because it will
|
But you should notice that `apm install module` won't work because it will
|
||||||
install a user package for [Atom Editor](https://github.com/atom/atom) instead.
|
install a user package for [Atom Editor](https://github.com/atom/atom) instead.
|
||||||
|
|
||||||
|
## Which version of apm to use
|
||||||
|
|
||||||
|
Generally using the latest release of `apm` for latest atom-shell always works,
|
||||||
|
but if you are uncertain of the which version of `apm` to use, you may manually
|
||||||
|
instruct `apm` to use headers of a specified version of atom-shell by setting
|
||||||
|
the `ATOM_NODE_VERSION` environment.
|
||||||
|
|
||||||
|
For example force installing modules for atom-shell v0.16.0:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ export ATOM_NODE_VERSION=0.16.0
|
||||||
|
$ apm install .
|
||||||
|
```
|
||||||
|
|
||||||
## Native Node module compatibility
|
## Native Node module compatibility
|
||||||
|
|
||||||
Since Node v0.11.x there were vital changes in the V8 API. So generally all native
|
Since Node v0.11.x there were vital changes in the V8 API. So generally all
|
||||||
modules written for Node v0.10.x wouldn't work for Node v0.11.x. Additionally
|
native modules written for Node v0.10.x wouldn't work for Node v0.11.x. And
|
||||||
since atom-shell internally uses Node v0.11.9, it carries with the same problem.
|
because atom-shell internally uses Node v0.11.13, it carries with the same
|
||||||
|
problem.
|
||||||
|
|
||||||
To solve this, you should use modules that support both Node v0.10.x and v0.11.x.
|
To solve this, you should use modules that support Node v0.11.x,
|
||||||
[Many modules](https://www.npmjs.org/browse/depended/nan) do support both now.
|
[many modules](https://www.npmjs.org/browse/depended/nan) do support both now.
|
||||||
For old modules that only support Node v0.10.x, you should use the
|
For old modules that only support Node v0.10.x, you should use the
|
||||||
[nan](https://github.com/rvagg/nan) module to port it to v0.11.x.
|
[nan](https://github.com/rvagg/nan) module to port it to v0.11.x.
|
||||||
|
|
||||||
|
@ -33,24 +48,24 @@ native modules.
|
||||||
|
|
||||||
### The node-gyp way
|
### The node-gyp way
|
||||||
|
|
||||||
First you need to check which Node release atom-shell is carrying via
|
To build Node modules with headers of atom-shell, you need to tell `node-gyp`
|
||||||
`process.version` (at the time of writing it is v0.10.5). Then you can
|
where to download headers and which version to use:
|
||||||
configure and build native modules via following commands:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ cd /path-to-module/
|
$ cd /path-to-module/
|
||||||
$ HOME=~/.atom-shell-gyp node-gyp rebuild --target=0.10.5 --arch=ia32 --dist-url=https://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist
|
$ HOME=~/.atom-shell-gyp node-gyp rebuild --target=0.16.0 --arch=ia32 --dist-url=https://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist
|
||||||
```
|
```
|
||||||
|
|
||||||
The `HOME=~/.atom-shell-gyp` changes where to find development headers. The
|
The `HOME=~/.atom-shell-gyp` changes where to find development headers. The
|
||||||
`--target=0.10.5` is specifying Node's version. The `--dist-url=...` specifies
|
`--target=0.16.0` is version of atom-shell. The `--dist-url=...` specifies
|
||||||
where to download the headers.
|
where to download the headers. The `--arch=ia32` says the module is built for
|
||||||
|
32bit system.
|
||||||
|
|
||||||
### The npm way
|
### The npm way
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export npm_config_disturl=https://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist
|
export npm_config_disturl=https://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist
|
||||||
export npm_config_target=0.10.5
|
export npm_config_target=0.6.0
|
||||||
export npm_config_arch=ia32
|
export npm_config_arch=ia32
|
||||||
HOME=~/.atom-shell-gyp npm install module-name
|
HOME=~/.atom-shell-gyp npm install module-name
|
||||||
```
|
```
|
||||||
|
|
Loading…
Reference in a new issue