Jon*_*ski 52
不可能将依赖关系指定为"全局" package.json
.而且,这是设计为Isaac 在您引用的功能请求中声明的:
是的,我们永远不会这样做.
但是,当在本地安装软件包时,仍然可以使用"二进制文件".他们会在.../node_modules/.bin/
.而且,您应该能够使用preinstall
脚本排队.
但是,如果一系列命令相当冗长(如" jshint,csslint,buster等...... "),您可能需要考虑使用构建工具grunt
来执行各种任务:
{
// ...,
"scripts": {
"preinstall": "grunt"
}
}
Run Code Online (Sandbox Code Playgroud)
End*_*ssa 30
我非常喜欢您安装本地依赖项的模式,然后使用将您的PATH设置为的bash脚本./node_modules/.bin
.
文件:env.sh
# Add your local node_modules bin to the path for this command
export PATH="./node_modules/.bin:$PATH"
# execute the rest of the command
exec "$@"
Run Code Online (Sandbox Code Playgroud)
然后,您可以在任何bash命令之前使用此脚本.如果您将它与Makefile或npm脚本配对:
文件:Makefile
lint :
./env.sh csslint my_styles
Run Code Online (Sandbox Code Playgroud)
文件:package.json
"scripts": {
"lint": "./env.sh csslint my_styles"
}
Run Code Online (Sandbox Code Playgroud)
这些文件中的这些任务看起来像是在某个全局位置引用csslint,但它们实际上使用了node_modules bin中的版本.
这真正令人敬畏的好处是,这些依赖项可以很容易地进行版本化,就像您的其他节点模块一样.如果您坚持使用全局安装解决方案,那么您可能会破坏用户系统上某个其他项目所需的特定版本.
你应该试试这个:https://github.com/lastboy/package-script
我一直用它来直接从package.json安装全局的npm包.它适用于没有技术知识的客户.
它甚至会检查包是否已安装,如果没有安装它们!
归档时间: |
|
查看次数: |
66571 次 |
最近记录: |