webpack指南为什么css-loader style-loader 必须要本地安装, 不能全局安装?
发布于 8 年前 作者 pronan 5960 次浏览 来自 问答

为什么css-loader style-loader 必须要本地安装, 不能全局安装? 我的环境是win10, 然后nodejs用来搞前端(通过webpack). 自己一人折腾玩的 Run npm install css-loader style-loader to install the loaders. (They need to be installed locally, without -g) This will create a node_modules folder for you, in which the loaders will live. 指南

5 回复

这个嘛。。。问的好,哈哈哈

一个原则就是:能够本地安装的,就不要全局安装,global is evil.

主要是两方面的原因: 权限和多版本。 global的用户一般是root。如果你用root的css-loader编译文件,生成的文件也是root所拥有。 这样就会导致使用的时候,不一定有权限,然后报access错误。 多版本就是多个项目用的npm module可能需要的版本不一样, 如果都用global, 那global应该就无法适应多版本。 当然以上只是npm的模块规范,并不是所有模块都会遵循这些规范。但是css-loader 这种比较知名的模块会比较注意这方面的问题(其实应该是出过问题,被人提issue,然后修复了) 它们在代码中会判断模块调用路径,如果是global调用时,就会扔出错误。 事实上很多不涉及文件读写或者小模块是不会管你是不是global的。

原则上 非cli类的都随项目做依赖管理,不然多项目之间的版本控制就会很麻烦

好的,谢谢大家

回到顶部