package.json文件的用法

1.bin字段

可选字段,很多包都会有执行文件需要安装到PATH中去。这个字段对应的是个map数据结构,每个元素对应一个{ 命令名:文件名 }。例如:

{ "bin" : { "hello" : "./cli.js" } },

就可以在命令行模式下执行cli.js脚本了。

npm hello

更高级的是:直接命令行 hello,不需要npm,可以运行npm link,npm link的作用如下:

NPM Link:创建快捷链接,供本地模块调试使用(比复制好操作)

创建开发模块的短连接

首先,在模块目录(src/myModule)下运行npm link命令。

src/myModule$ npm link 
上面的命令会在Npm的全局模块目录内,生成一个符号链接文件,该文件的名字就是package.json文件中指定的文件名。

/path/to/global/node_modules/myModule -> src/myModule 
这个时候,已经可以全局调用myModule模块了。但是,如果我们要让这个模块安装在项目内,还要进行下面的步骤。
创建使用中项目的短连接

切换到项目目录,再次运行npm link命令,并指定模块名。

src/myProject$ npm link myModule
上面命令等同于生成了本地模块的符号链接。

src/myProject/node_modules/myModule -> /path/to/global/node_modules/myModule 
然后,就可以在你的项目中,加载该模块了。

删除link

如果你的项目不再需要该模块,可以在项目目录内使用npm unlink命令,删除符号链接。

src/myProject$ npm unlink myModule 

2 script字段

 通过npm run 命令行来运行script字段,例如:

"scripts": {  
  "build": "webpack",  
  "dev": "webpack-dev-server --devtool eval --progress --colors --content-base build"  
} 

即可以运行:

npm run build
npm run dev

3.自动安装dependencies

npm install

4.npx

npx能解决全局安装带来的弊端,有了npx就不需要npm包安装到全局中去,它会自动在当前目录下去查找命令行,如果找不到,会下载最新的npm包。

npx能解决不需要配置的命令就能执行,本地node_modules下已经安装npm包,允许有两种方式来运行这个包,1:在package.json中的script中配置。2:直接/node_modules/.bin/命令行去执行。

如果有npx,它会在本地node_modules去查找。直接npx 命令行即可。

npx -p可以指定node版本,如:npx -p node@6 npm run test

npx npm包,如果本地没有这个包,会自动去下载,npx --no-install(可以不需要去安装远程),npx --ignore-existing(会忽略本地,强制安装远程并允许)

 

posted @ 2017-08-22 17:07  anthonyliu  阅读(2565)  评论(0编辑  收藏  举报