- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用 CoffeeScript 编写的相当大的项目(生产包文件大约 400kB)。而且我不知道如何计划迁移到 ES6。我知道有像 Decaffeinate 这样的工具但我不确定它是否真的适用于商业实践。
我想我可以在一个项目中使用 ES6 和 coffee,但是是否可以在 coffee 中编写组件,导入和使用用 ES6 编写的代码,反之亦然,并且所有这些都在生产中工作?
此迁移是否可以逐步完成,或者除了在一个版本中完成所有操作外别无选择?
webpack 是如何工作的(正确的加载器)?顺序是什么?是先把ES6转JS(或者coffee转JS)然后全部导入还是先导入文件再转JS?
最后,在类似的情况下,是否有一些最佳实践可以用 coffee script 和 ES6 编写代码?
最佳答案
我是最近研究脱咖啡因的主要人员。它已用于大型生产代码库,目前没有已知错误,因此它可能足够稳定供您使用。不过,您应该一次转换一小段代码而不是一次全部。
您可以通过在 module.rules
(或 module.loaders
for webpack 1).
如果您使用 require
语法,在 CoffeeScript 和 JavaScript 之间导入代码应该没有任何问题。如果你使用 JS import
/export
语法,你可能需要在某些情况下使用 require('./foo').default
require CoffeeScript 文件中的 JavaScript。但在大多数情况下,即使使用 import
/export
语法,互操作也应该可以正常工作。
可能一个好主意是转换一个或两个文件,并确保 eslint、babel 和其他 JavaScript 配置按照您希望的方式进行配置。从那里开始,您应该一次转换一个或两个文件的代码,并根据您的需要增加一次转换的文件数量,因为您对它更熟悉了。
一种方法是随着时间的推移慢慢将 CoffeeScript 文件转换为 JS,转换并清理您接触的文件。我在这种方法中看到的问题是,在您离开 CoffeeScript 之前可能需要很长时间。这取决于您的情况,但通常我会建议在越来越大的批处理中运行 decaffeinate,而不要过分关注手动清理,然后一旦代码库是 100% JavaScript,在您使用它们时手动清理文件。
前一段时间,我写了一些关于如何思考不同转化策略的想法,你可能会觉得有用: https://github.com/decaffeinate/decaffeinate/blob/master/docs/conversion-guide.md#converting-a-whole-project
关于javascript - 一个项目中的 Coffeescript 和 es6 - 实践中的迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43469484/
我通常不会这样做,但我目前正在从事的项目需要几个位于 c 源文件中的函数。 extern "C" { int words(char sentence[]); int match(cha
我是一名优秀的程序员,十分优秀!