使用NodeJS开发项目的时,每个项目都可以看作是一个npm包,commonJS规范一个完整的包应该包含哪些文件?

    • bind文件夹,存放二进制目录
    • lib文件夹,存放相关的 JavaScript 代码
    • doc文件夹,存放文档的目录
    • test文件夹,存放单元测试的代码
    • package.json,包描述文件

    package.json文件参数解释:

    1. {
    2. // 主页
    3. "homepage": "",
    4. // 包的名称
    5. "name": "",
    6. // 包的版本
    7. "version": "1.2.11",
    8. // 包的描述
    9. "description": "",
    10. // 包的作者
    11. "author": "",
    12. // 关键字
    13. "keywords": [],
    14. // 包的维护者
    15. "maintainers": [],
    16. // bug
    17. "bugs": [],
    18. // 许可
    19. "licenses": [],
    20. // 可以使用该包的操作系统
    21. "os": ["linux", "windows", "macos"],
    22. // 生产环境依赖包及版本。一般都是依赖包如 vuebabel
    23. "dependencies": {},
    24. // 脚本说明对象
    25. /*
    26. 例如使用 babel 的时候执行文件:
    27. ./node_modules/.bin/babal src --out-dir lib
    28. */
    29. /*
    30. 配置了 scripts 后就可以通过 npm run build 执行脚本
    31. run 关键字会找 node_modules/.bin 文件夹
    32. .bin 相当于本地的可运行的文件(存放系统命令)
    33. */
    34. "scripts": {
    35. "build": "babel src --out-dir lib"
    36. },
    37. // 开发环境依赖包及版本。一般都是构建工具如 webpackeslint,存放本身和当前包没有太多的关系的工具
    38. /*
    39. 1.xx.xx 大版本
    40. 1.1.xx 次要版本
    41. 1.1.1 小版本
    42. >= 1.0.3 大于等于
    43. <= 1.0.3 小于等于
    44. ^1.0.3 插入号,安装的版本不能低于该版本同时不能更改大版本号,否则可能存在兼容问题
    45. ~= 1.0.3 大版本和次要版本都不能改变
    46. */
    47. "devDependencies": {},
    48. // 包的入口文件,默认为 index.js
    49. "main": {},
    50. "bin": {}
    51. }

    keywords 属性的作用