react native 之 node 基础

1.为什么React Native 需要node.js

    (1) 提供React Packager的运行环境

    (2) 提供npm包管理器来安装第三方模块node_module

    (3) 提供一些可以参考的规范

react packager的作用:

react native 之 node 基础

 

2.npm如何用?

npm install 

后面可以跟参数

-g 表示全局(安装可在命令行直接执行的模块,如 react-native-cli)

--save或者-S

 

3.package.json和node_modules

npm install 必须在有package.json的目录下执行

 一个正常创建的React Native项目必须包含有package.json

你也可以使用npm init命令创建一个空的package.json(混编原生)

package.json如同一张购物清单

react native 之 node 基础

react native 之 node 基础

总结:

新装第三方库执行 npm install 库名 --save

复制或下载别人的react native项目之后 一般不复制里面的node_modules 那么第一反应是执行npm install 

node_modules随用随装,原则上不复制,不移动,不修改,不上传

 

4.什么是commonjs规范

js没有模块概念,无法互相引用

node.js指定了commonjs模块规范,便于分拆,引用代码查看

react native借鉴了这一做法

两种引用语法:

ES5 不推荐

       module.export = moduleA;   //a.js 

       var moduleA = require(' ./a') // 与a.js同目录的b.js

ES6  不推荐

        export default moduleA  ;   //a.js

        import moduleA from ' /a'    //与a.js同目录下的b.js

 

6.模块查找和引用规则

 require ('ooxx')  - 引用node_modules/ooxx/index.js,或node_modules/ooxx/package.json中main字段所指定的js文件

 require (' ./a') -引用同目录下的a.js文件. 注意 ./不能省略 .js后缀可写可不写

 require(' ../a/b') - 引用父目录下的a目录下的b.js文件,如果b为目录则引用b目录下的index.js 文件