gpt4 book ai didi

javascript - 在 NodeJS 中使用 RequireJS 和 CoffeeScript,无需转译

转载 作者:太空宇宙 更新时间:2023-11-04 02:38:44 25 4
gpt4 key购买 nike

可能是非常简单的问题,但到目前为止我仍然没有找到任何可行的解决方案。目前我可以纯粹从咖啡文件运行服务器,甚至摩卡测试也可以使用咖啡文件。然而 RequireJS 仍在寻找 *.js 文件:/我对仅仅为了满足 RequireJS 进行转译感觉不太好。

可能更简单的方法是使用 NodeJS extensions ,但由于它已被弃用,所以这不是一个好方法。我正在考虑这样的解决方案:

requirejs.config({
nodeRequire: require,
compilers: [
{
extensions: ['.coffee','.litcoffee','.coffee.md']
compiler: require('coffee-script').compile
}
]
})

它只会查找具有这些扩展名的文件,找到后对其进行编译。否则保持默认行为。当然,这意味着在查找这些文件时会出现一些性能问题,但由于它仅用于开发,所以我没有看到什么大问题。

不幸的是,我很难理解 RequireJS 的底层工作原理。否则我会尝试找出像这样的解决方案。

我还缺少其他解决方案吗?

已解决

在经历了这一切之后,我决定采用完全相反的方法。 Use the require for the browser side也是如此,所以我不需要更改服务器代码的任何内容。

最佳答案

相关(我的问题):how can I get connect-assets to recompile my coffee files when they change?

这可以通过 connect-assets 实现。这是位于请求和 Assets 之间的层,并按需编译它们。我尝试走这条路,发现需要做很多工作——经常遇到 connect 无法正确地将咖啡编译成 js 的情况。或者什么,我可能做错了,因为我当时是 Node 新手。另外,我对在生产中依赖这样的 Assets 层感到不太舒服。

最后,我决定提供 js 文件并在它们更改时使用 grunt 构建它们。 , grunt-contrib-watchgrunt-contrib-coffee 。这样做的好处是,如果你在特定的 js 行上遇到错误,你可以打开文件并查看失败的行。如果您是 CoffeeScript 的新手,您偶尔会犯错并最终得到一些古怪的 JavaScript。能够提取 js 文件并查看它是很有帮助的。

在构建 Web 应用程序时,有很多类似的任务需要自动化,因此 grunt 在很多情况下都是一个有用的工具。这就是我的建议。

这是我的 grunt 设置的示例:

  # Project configuration.
grunt.initConfig
watch:
coffee:
files: ['app/assets/src/coffee/**/*.coffee', 'app/assets/src/coffee/*.coffee', 'app/webserver.coffee']
tasks: ['coffee:dev', 'replace', 'test']

通过此设置(并非所有设置都在这里),我可以转译所有咖啡文件,运行所有测试,对某些文件执行一些文本操作,并在 2 秒内拥有一个干净且准备就绪的 Web 应用程序。

Require 需要一些时间来理解,但总而言之,它只是在本地(客户端)查看它是否有一个库,如果没有,它就会从服务器获取它。它不会进行任何转译,如果你愿意的话,这似乎有点超出它的“任务参数”。 Require 就像汽车配件店的配件人员:它检查前台是否有可用的工具;是的,它把它交给你;不,它会得到它。

如果您只想在 Node 中使用咖啡而不转译它,请尝试 require-cs

关于javascript - 在 NodeJS 中使用 RequireJS 和 CoffeeScript,无需转译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19231799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com