前端坑: node-sass

2017-05-16 17:53:44 +08:00
 sensui7

提起 node-sass, 很多人一把泪,. 之前用 npm, 我用 cnpm, 或者终端代理安装.

这回环境换成 win+yarn,

  1. cmd 开代理我是不会 用了传说中的 node_sass/install.js 的变量, 指向 cnpm 包的地址, url 没问题, 死活提示 404.

  2. 于是还是开全局代理.

  3. build 时提示 python 找不到, 就在环境变量中, 你找不到 , 手工指定

yarn config python2 c:\python2\python2.exe
  1. 最后, yarn 没有 rebulid, 有一个
yarn install --force

不够折腾的... 我想用 linux.

16831 次点击
所在节点    分享发现
22 条回复
sensui7
2017-05-18 21:23:07 +08:00
@hxsf
这是你的截图

很明显, 你的 binary 是从本地缓存读取的, 你那个 yarn 下载确实是从 github 下载的, 但只能说明翻墙有效, 这里讨论的是绕过墙. 翻墙还有什么好说的.

至于 node-gyp, 我并没有单独配置过 node-gyp, 不过我电脑上有 c++ build toos 和 python2, 我以前安装 rust 环境安装了.
现在能 build 成功. 我的问题已经都解决了.

我不知道你在测什么, 你要是测 SASS_BINARY_SITE , 别翻墙, 清缓存, 你现在 npm 用的缓存, yarn 是翻墙下的, 你要是测 build, 你这也没 build 过程.

从你之前问 install.js 哪来的, 说明你根本不了解这个包安装过程.

唉, 有句话叫, 人之患, 在好为人师. 我不知道的东西多了, 你要能解答我还真感谢你. 浪费了半天精力说了一大堆, 全不在正题上. 谦虚点没什么坏处, 树叶有篆工.

今天心情不好, 不然也不会跟你挣无意义的口舌之辩.
hxsf
2017-05-18 22:09:18 +08:00
@sensui7 #21

npm 的缓存是我录了两遍的问题。缓存也是从 SASS_BINARY_SITE 缓存的啊,衣你所愿,
https://ooo.0o0.ooo/2017/05/18/591da4d205ea2.gif
这是清缓存后的。

我从未要测 build 的过程,而是一直在试图讲清楚 直接使用 prebuild 包,而无需安装 node-gyp

你说 `从你之前问 install.js 哪来的, 说明你根本不了解这个包安装过程.`

这是因为,你说 ·你直接 node node_modules/node-sass/..../install.js 报找不到`,但是你又没说你这个 node_modules/node-sass 文件夹怎么来的。

如果是通过 npm 安装的,当 npm 安装失败的时候,他会删掉这个文件夹。所以我会猜测是不是你下载了源码放到了这个目录(可能导致 node-sass 的依赖没有被安装)。

当你 安装 node-sass 的时候

1. npm 通过 registry (通常是 https://registry.npmjs.org/)去下载这个包及其依赖(递归下载所有依赖),
2. 如果 1 中没有发生 404,根据 npm 定义的 `install, postinstall: Run AFTER the package is installed.`,所以 node-sass 安装好了后会执行 定义好的 scripts/install.js,这个文件里编写了 去 github 或者 镜像站下载 预先编译好的 二进制文件

3. 依然是根据 npm 规定的, `install`完了之后会执行 `postinstall`,这个指向 scripts/build.js 这个文件的作用是 测试之前下的二进制文件可用的,如果不可用或者压根没下载下来,就调用 node-gyp 去走源码构建。

我说的有哪里不对的还请指出?

你一开始的不成功是不是因为上面过程的问题?也请说明。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/361746

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX