- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
可能是非常简单的问题,但到目前为止我仍然没有找到任何可行的解决方案。目前我可以纯粹从咖啡文件运行服务器,甚至摩卡测试也可以使用咖啡文件。然而 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-watch和 grunt-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/
在 ES6 中,我们可以使用 rest 参数,有效地创建一个参数数组。 TypeScript 使用 for 循环将其转换为 ES5。我想知道是否存在使用 for 循环方法比使用 Array.proto
鉴于以下情况: require('babel-core').transform('3').code 有没有办法让它返回3 (一个表达式)而不是 3; (一份声明)? 我试过了: 在网络和各种站点上搜索
这是我的计划。我想使用适用于 Windows 和 Mac 的 Typescript 构建应用程序。但是,由于我要将 Typeascript 代码转换为 Javascript 代码,所以我想尽可能实现一
是否有一个独立的转译器用于将 JSX 转换为 JavaScript(即只是 → createElement("foo", …) ,没有别的)? 我知道我可以只使用 Babel 和 Transform
我知道使用 babel 设置内联 javascript transpile // your es6 code 但是有没有可能将 es6 代码的字符串版本提供给 babel 并获得作为字
我想转译 ES6 中的几个 js 文件以与 chrome 兼容,但似乎 http://babeljs.io/docs/usage/cli/ 中的文档不准确。 完成前几个步骤后,我在控制台中输入:bab
我玩了一下 Babel 和 ES6,转译了一些代码,但我被困在这部分了: class App extends SomeParent { myFunction() { } } 我感兴趣的
我全新安装了 Next.js,并且希望能够使用 import 和 async/await 等。 我已经更新了我的 .babelrc { "plugins": [ [ "modu
我在 index.html 中有这个 SystemJS 配置: System.config({ defau
我正在开发一个网络应用程序,并将我的 Javascript 分成多个文件。我正在使用 Babel 将 ES2015 源文件目录转换为单个 ES5 文件。来自面向对象的背景,我喜欢拥有“类”,无论它们是
我对 Webpack 还很陌生,我只是想在这里启动一个简单的项目。我收到以下错误: ERROR in ./index.js Module parse failed: /Users/jay/Docume
我正在开发一个使用 es6 和 es7 代码的 Aurelia 应用程序,我正在尝试使用 babel 转译代码。我的 packages.json 文件中有以下内容 "scripts": { "
问题 当我使用npm run start运行nodemon时,我收到错误:找不到模块“Test”,以及当我使用npm run build构建文件时 并运行 ./dist/index.js,我得到同样的
由于 babel 没有正确转译代码,所有测试都失败了。 下面是来自控制台的错误。 Jest encountered an unexpected token This usually means t
我知道这样的事情不应该难倒我,但它确实难倒了我。 我正在学习如何使用 coffeescript 以及如何使用 Adobe Brackets 作为我的文本编辑器。那么如何在 Adobe Brac
TypeScript 在转译过程中检查整个代码库,即使实际上只有一个文件发生了变化。对于小型项目,这很好,但随着我们的代码库增长,这需要相当长的时间。 在开发过程中,我希望我的单元测试能够快速响应。单
我是第一次建立 TS 项目。我很好奇 - 我可以使用和配置 Babel 或者只是做 tsc .. 进行转译。 两者的主要区别是什么? 最佳答案 主要区别在于对 TypeScript 语言本身的支持。
对于我拥有的每个手动模拟,我都会收到来自 Jest 的警告,因为它同时找到了它的 .ts 和 .js 版本,并要求我删除一个,即: jest-haste-map: duplicate manual m
我是 babel 的新手,正在尝试转换我的 es6 代码以与 IE11 一起使用。但是当我在 IE11 中运行代码时,我收到关于我的 forEach 代码的 js 错误。根据我的阅读,我需要添加预设
尝试使用 mocha 对 ReactJS 应用程序进行单元测试,但在 node_modules 中使用的 es6 功能(导入/导出)中出现错误文件夹。有问题的应用程序是使用 babel 进行转译的,但
我是一名优秀的程序员,十分优秀!