node-sass 配置

1. 执行下列脚本,获取 node 对应的 node-sass 版本
node -p "[process.platform, process.arch, process.versions.modules].join('-')"

2. 下载对应版本

https://github.com/sass/node-sass/releases

3. npm 设置

npm config set SASS_BINARY_PATH=D:/win32-x64-64_binding.node(本地地址)

 

以下是随手写的脚本

const fs = require('fs');
const request = require('request');
const { spawn, spawnSync } = require('child_process');
const npm = process.platform === 'win32' ? 'npm.cmd' : 'npm';
const version = 'v7.0.1';
const bat = spawn('node.exe', [
  '-p',
  "[process.platform, process.arch, process.versions.modules].join('-')",
]);

bat.stdout.on('data', (data) => {
  const corresponding = data.toString().replace(/[\r\n]/g, '');
  const url = `https://github.com/sass/node-sass/releases/download/${version}/${corresponding}_binding.node`;
  const downloadPath = `D:/${corresponding}_binding.node`;
  console.log(`[Download] ${downloadPath}`);
  if (fs.existsSync(downloadPath)) {
    fs.unlinkSync(downloadPath);
  }
  request
    .get(url)
    .on('error', function (err) {
      fs.unlinkSync(downloadPath);
      console.error(`[Error] ${err.message}`);
    })
    .on('close', () => {
      spawnSync(npm, ['config', 'set', `SASS_BINARY_PATH=${downloadPath}`]);
      console.log('[Done] 任务完成!');
    })
    .pipe(fs.createWriteStream(downloadPath));
});
posted @ 2022-01-13 11:32  .K_o  阅读(613)  评论(0)    收藏  举报