Nodejs环境下,less和coffee都可以在浏览器中跑,可是真的有人这么用么?
Nodejs环境下,less和coffee都可以在浏览器中跑,可是真的有人这么用么?
每次刷新,要把ruby重新编译成js,这个太搞了吧?
在Node.js环境中,LESS和CoffeeScript通常用于服务器端的开发,而不是直接在浏览器中运行。不过,理论上来说,它们确实可以在浏览器中运行。然而,这种情况并不常见,主要原因包括性能问题、兼容性问题以及构建工具的便利性。
LESS 在浏览器中的使用
LESS是一种CSS预处理器,可以让你使用变量、嵌套规则等高级特性来编写CSS。尽管LESS本身是在服务器端编译为普通CSS,但也可以通过客户端编译器在浏览器中进行实时编译。
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>LESS in Browser</title>
<!-- 引入LESS客户端编译器 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/less.js/4.1.3/less.min.js"></script>
<!-- 引入LESS文件 -->
<link rel="stylesheet/less" type="text/css" href="styles.less">
</head>
<body>
<h1>Hello, LESS!</h1>
</body>
</html>
在这个例子中,styles.less
文件包含了LESS代码。LESS客户端编译器会实时将LESS代码编译为CSS并应用到页面上。
CoffeeScript 在浏览器中的使用
CoffeeScript是一种简洁的编程语言,其语法受到Ruby和Python的影响。它可以被编译成JavaScript,使得代码更加简洁易读。然而,在浏览器中直接运行CoffeeScript并不常见,因为大多数情况下它会被预先编译为JavaScript。
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CoffeeScript in Browser</title>
<!-- 引入CoffeeScript客户端编译器 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/coffee-script/1.12.7/extras/coffee-script.min.js"></script>
<!-- 引入CoffeeScript文件 -->
<script type="text/coffeescript" src="script.coffee"></script>
</head>
<body>
<h1>Hello, CoffeeScript!</h1>
</body>
</html>
在这个例子中,script.coffee
文件包含了CoffeeScript代码。CoffeeScript客户端编译器会实时将CoffeeScript代码编译为JavaScript并执行。
结论
虽然LESS和CoffeeScript理论上可以在浏览器中运行,但在实际项目中,它们更多地是在服务器端被编译为CSS和JavaScript,然后部署到生产环境。这种方式不仅提高了性能,还减少了浏览器的负担,使整个开发流程更加高效。
实际上在我们的项目中是这样的: 开发时使用 coffee, 完成一部分功能后, 使用grunt进行 打版(压缩、混淆、编译代码), 然后上线。
所以使用coffee开发的代码,用户看到在浏览器跑时的是已经变成js 的代码。
coffee 后端代码(浏览器渲染dom之前执行的代码) 使用 node-inspector 无法调试,只能用原始的console.log(很是郁闷)调, 前端代码 (浏览器加载了dom后之行的代码), chrome调试无压力。