gpt4 book ai didi

CoffeeScript-编译子目录中的顺序

转载 作者:行者123 更新时间:2023-12-04 18:12:15 25 4
gpt4 key购买 nike

有什么方法可以在子目录中定义CoffeeScript编译顺序?
请考虑以下示例:

文件:

  • src/App.coffee
  • src/view/B.coffee
  • src/view/a/A。咖啡

  • A类扩展到B类的地方。
    coffee --join js/app.js --compile src/view/ src/App.coffee

    这会在浏览器中引发错误:
    Uncaught TypeError: Cannot read property 'prototype' of undefined 

    如果我将 文件夹重命名为 z ,则错误消失了,并且一切正常。
  • src/view/ z /A。咖啡

  • 我希望编译器在进入src/view/子目录之前先从src/view/读取所有.coffee文件。再说一次,有什么办法吗?

    编辑:
    PC Windows 7,
    CoffeeScript版本1.3.3

    最佳答案

    我认为唯一的解决方案是在构建脚本中手动创建编译顺序。
    您将创建一个具有文件名的有序集合,在此过程中,循环迭代并连接一个新的大字符串,该大字符串可以编译为一个文件。

    创建具有以下内容的Cakefile,首先检查语法。并使用cake build运行。应该可以,CoffeeScript附带有cake。

    fs = require 'fs'
    {exec} = require 'child_process'

    viewsDir = "src/view"
    coffeeFiles = [
    'B'
    'A'
    ]

    task 'build'
    # loops through coffeeFiles.
    for file, index in coffeeFiles then do (file, index) ->
    fs.readFile "#{viewsDir}/#{file}", 'utf8', (err, content) ->
    appCoffee[index] = content
    compile() if --remaining is 0

    compile = ->
    fs.writeFile 'js/app.coffee', appCoffee.join('\n\n'), 'utf8', (err) ->
    throw err if err
    exec 'coffee --compile js/app.coffee', (err, stdout, stderr) ->
    throw err if err
    console.log stdout + stderr

    # you can skip deleting the app.coffee file
    fs.unlink 'js/app.coffee', (err) ->
    throw err if err
    console.log 'Created app.coffe, compiled to app.js and removes app.coffee'

    # maybe additional taks
    # invoke 'test'

    在Coffeescript Wiki上也有记录 https://github.com/jashkenas/coffee-script/wiki/[HowTo]-Compiling-and-Setting-Up-Build-Tools

    在第一次循环之前,您还可以使其在不同目录中循环。只需列出coffeeFiles中要处理的文件名,然后再列出未列出的文件名即可,其余文件可以通过fs.readDir()添加到列表中。

    关于CoffeeScript-编译子目录中的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11386578/

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