跨模块常量

本书介绍const命令的时候说过,const声明的常量只在当前代码块有效。如果想设置跨模块的常量(即跨多个文件),或者说一个值要被多个模块共享,可以采用下面的写法。

  1. // constants.js 模块
  2. export const A = 1;
  3. export const B = 3;
  4. export const C = 4;
  5. // test1.js 模块
  6. import * as constants from './constants';
  7. console.log(constants.A); // 1
  8. console.log(constants.B); // 3
  9. // test2.js 模块
  10. import {A, B} from './constants';
  11. console.log(A); // 1
  12. console.log(B); // 3

如果要使用的常量非常多,可以建一个专门的constants目录,将各种常量写在不同的文件里面,保存在该目录下。

  1. // constants/db.js
  2. export const db = {
  3. url: 'http://my.couchdbserver.local:5984',
  4. admin_username: 'admin',
  5. admin_password: 'admin password'
  6. };
  7. // constants/user.js
  8. export const users = ['root', 'admin', 'staff', 'ceo', 'chief', 'moderator'];

然后,将这些文件输出的常量,合并在index.js里面。

  1. // constants/index.js
  2. export {db} from './db';
  3. export {users} from './users';

使用的时候,直接加载index.js就可以了。

  1. // script.js
  2. import {db, users} from './constants/index';