【问题标题】:How to use a node module outside of node?如何在节点之外使用节点模块?
【发布时间】:2012-08-01 04:26:24
【问题描述】:

我通过npm安装了sass node模块,想用它来编译一些不在node环境下的scss样式表。

理想情况下,我希望能够像使用 coffeescript 编译器一样使用它

sass -cw somestylesheet.scss

但是任何能让我接近那里的东西都可以。

我没有看到任何命令行实用程序。是否有某种标准方法可以用节点做这种事情?

【问题讨论】:

  • 我没有为我找到的 2 个不同节点 SASS 端口找到任何命令行包装器。我猜你可以写一个并贡献它。 LESS 确实带有命令行界面:github.com/cloudhead/less.js 和手写笔一样 github.com/LearnBoost/stylus
  • 是的,就是这样。通常,您可以为 node.js 编写可从命令行运行的 javascript 程序。在这方面就像 perl、python、ruby 一样工作,只是不是每个 npm 模块都带有命令行工具。 .js 文件顶部的#!/usr/bin/env node 有效。

标签: node.js command-line npm


【解决方案1】:

我确定您已经在编写一个小 sass 编译器脚本,但这里有更多背景信息:

要使用 npm 在 node 中全局安装模块,npm 会读取 package.json 中的 "bin" 哈希,以查找映射到相应脚本的多个全局名称。

这是我从 express 中获取的示例:

{
  "name" : "express"
  ...
  "bin": { "express": "./bin/express" },
  ...
}

这告诉 npm 使 express 脚本全局可用,当您使用 npm install -g <package-name> 安装包时

我检查了https://github.com/andrew/node-sass/blob/master/package.json,它的 package.json 中没有 "bin" 哈希,所以你必须自己写一个。

正如@peter-lyons 所说,你启动一个可执行的节点脚本

#!/usr/bin/env node

your code

根据您使用的操作系统,您可能还需要使用chmod +x yourScript 使脚本可执行。然后你应该能够从任何控制台执行你的脚本,如果你把它放在全局路径上,或者你把它称为./yourScript

【讨论】:

  • 早在 7 月份,我刚刚放弃并使用了 ruby​​。现在用一台新机器回到它,我仍然想使用节点,但是 dang - 同样的泡菜。我有更多的节点经验,但还不足以知道如何编写自己的包装器,尤其是在 Windows 上
猜你喜欢
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-12
  • 2017-04-10
  • 1970-01-01
  • 1970-01-01
  • 2016-12-28
相关资源
最近更新 更多