bootstrap-v5目录本地安装sass报EPERM错误,如何将全局sass引入项目
问题原因分析
报错是因为你的项目位于安卓共享存储路径(/storage/emulated/0/下的目录),该文件系统默认不支持创建符号链接。npm本地安装依赖时需要在node_modules/.bin目录生成软链接指向依赖的执行文件,因此触发EPERM权限错误。全局安装时依赖被写入Termux私有目录(/data/data/com.termux/),该目录支持软链接所以可以正常安装成功。
可用解决方案
方案1:禁止npm生成软链接,直接本地安装sass
如果你还是想把sass装到项目依赖里,执行如下命令即可避开软链接创建报错:
npm install --save-dev sass --no-bin-links
安装完成后可通过npx sass调用项目内的sass工具进行编译。
方案2:直接使用已安装的全局sass
无需额外在项目内安装,直接通过以下两种方式使用即可:
- 手动执行编译命令:在项目根目录直接运行sass相关指令,例如:
- 单次编译:
sass 你的scss文件路径/input.scss 输出css路径/output.css - 监听修改自动编译:
sass --watch scss文件夹路径:css输出文件夹路径
- 单次编译:
- 配置npm脚本调用:在项目的
package.json文件的scripts字段中添加编译规则,示例:
配置完成后运行{ "scripts": { "build:css": "sass scss/main.scss dist/css/bootstrap.css", "watch:css": "sass --watch scss:dist/css" } }npm run build:css即可完成编译,运行npm run watch:css可监听scss文件改动自动编译。
方案3:迁移项目到Termux私有目录
如果后续需要频繁安装npm依赖,可将项目移动到/data/data/com.termux/files/home/目录下,该目录支持软链接,不会出现类似安装报错。
内容的提问来源于stack exchange,提问作者Ali-D-Coded
相关产品推荐
相关产品推荐

