如何将函数从一个 CoffeeScript 文件导入到另一个文件?

How do I import functions from one CoffeeScript file to another?

我在 CoffeeScript 中有两个不同的文件,我想从一个文件访问另一个文件中的函数。我可以将函数从一个文件导入到另一个文件吗?

是的,与Javascript中的相同。您可以使用 commonjs require 语法,或者如果您使用像 babel 这样的预处理器,您可以通过 import / export 语法

使用模块

需要

您可以导出包含您喜欢的任何内容的对象,并在另一个文件中使用它。用一个例子最简单的解释:

first.coffee

a = (x) ->
  console.log "file first, function a, argument #{x}"

b = 3.1415

module.exports = 
  a: a
  b: b

second.coffee:

first = require './first'

first.a 'test'
console.log "b: #{first.b}"


  

模块

来自documentation

ES2015 modules are supported in CoffeeScript, with very similar import and export syntax:

import './local-file.coffee'
import 'coffeescript'

import _ from 'underscore'
import * as underscore from 'underscore'

import { now } from 'underscore'
import { now as currentTimestamp } from 'underscore'

您将需要使用 babel 进行转译,因为 import/export 在 Node / 浏览器中默认不支持。一个流行的例子是 webpack。这是一个 official example

You'll need to install @babel/core and @babel/preset-env and then create a configuration file:

npm install --save-dev @babel/core @babel/preset-env
echo '{ "presets": ["@babel/env"] }' > .babelrc

webpack.config.js

module.exports = {
  module: {
    rules: [
      {
        test: /\.coffee$/,
        loader: 'coffee-loader',
        options: {
          transpile: {
            presets: ['@babel/env'],
          },
        },
      },
    ],
  },
};