npm
npm 是 JavaScript 世界的包管理工具,并且是 Node.js 平台的默认包管理工具。通过 npm 可以安装、共享、分发代码,管理项目依赖关系。
npm初始化
使用npm init命令就可以初始化一个package.json文件。 在初始化的过程中,会叫用户输入name, version等等信息, 当然,你都可以忽略。一路点回车,或者npm init -y 就生成了下面这样一个初始化的package.json。 //package.json { “name”: “test”, // 假如项目叫做test “version”: “1.0.0”, “description”: “”, “main”: “index.js”, “scripts”: { “test”: “echo “Error: no test specified” && exit 1” }, “author”: “”, “license”: “ISC” }
上面的package.json包含了项目的名称,版本号,描述,入口文件,执行脚本,作者,开源协议等。
重要参数:
main:代码入口。
这个十分重要,特别是对于组件库。当你想在node_modules中修改你使用的某个组件库的代码时,首先在node_modules中找到这个组件库,第一眼就是要看这个main,找到组件库的入口文件。在这个入口文件中再去修改代码吧。
“scripts”: {
“dev”: “NODE_ENV=dev webpack-dev-server --progress --hot --host 0.0.0.0 --port 8089”,
“test”: “NODE_ENV=test webpack --config webpack.test.config.js --progress”,
“online”: “NODE_ENV=production webpack --config webpack.online.config.js --progress”,
“build”: “webpack”,
“node”: “node server.js”
},
在命令行输入:npm run dev , 对应的命令就会被执行。
这里有一个地方需要注意,当执行npm run xxx 的时候,node_modules/.bin/目录会在运行时被加入系统的PATH变量。
上面的例子,当我们在命令行输入:npm run build时,其实真正执行的命令是node_modules/.bin/webpack而不是webpack。所以,当你的webpack并未全局安装时,直接在命令行输入:webpack是会报错的。因为你的webapck是安装在node_modules/.bin/下面的。
directories:对整个代码结构的描述。
告诉代码包使用者可以在哪里找到对应的文件。
files:数组。
表示代码包下载安装完成时包括的所有文件。
repository:对于组件库很有用。
让组件库使用者找到你的代码库地址。这个配置项会直接在组件库的npm首页生效。例子:"repository": { "type": "git", "url": "git+https://github.com/CoyPan/react-scroll-to-show-cb.git" },
config:用于添加命令行的环境变量。具体用法见这里。
dependencies:项目的依赖。
通过npm install --save安装的包会出现在这里。注意,不要把测试工具、代码转换器或者打包工具等放在这里。
当你在命令行里面使用npm install react --save时,react就会出现在dependencies。默认是安装最新的版本。
如果想安装某个特定的版本,可以npm install react@15.6.2。以下的dependencies,格式都是合法的,