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(会忽略本地,强制安装远程并允许)