升级到 1.9 后,编辑器 1.5 到 1.91 构建文件丢失

After upgrade to 1.9 and editor 1.5 to 1.91 build file is missing

../build 中的 Pub Build 生成的文件是(直到昨天我升级时):

fireimager_server.dart
fireimager_server.dart.js.map
fireimager_server.dart.js
packages

升级到 Dart 1.9 和编辑器到 1.91 后

fireimager_server.dart

丢失,我无法从脚本启动 My_Server.dart。

在构建中报告的唯一问题是几个声明但未使用的变量。

这是怎么回事?

我现在唯一的解决方法是从备份恢复到较早的日期并丢失我的编辑。

编辑

yaml file contents November 2014
name: Server
version: 0.7.1
author: Robert Lockwood
description: A sample web application
dependencies:
  browser: any
  http_server: any
  intl: any
  io: any
  json: any
  json_object: any
  logging: any
  logging_handlers: any
  route: any
  typed_data: any

fireimager.html 文件:

<!DOCTYPE html>

<html>
<head>
<meta charset='utf-8'>
<title>FireImager</title>
<meta name="description" content="FireImager control GUI">
<meta name="author" content="Robert N Lockwood">
<link rel='stylesheet' type="text/css" media="screen" href='fireimager.css'>
<!-- <link rel="shortcut icon" href="/favicon.ico"> -->
</head>

<body>
  <div id='main-box'>
    <section>
      <div id='top-box'>
        <div id='img-box'>
          <div id='image-div'>
           <div id='imgAnchor'>
             <img alt='' id='image' src='resources/fi_12_demo.png'
                height='480' width='640'>
             </div>
          </div>
        </div>
        <div id='right-container-box'>
          <div id='log-box'>
            <textarea id='log-area' readonly placeholder='Activity Log'
              cols="1" rows="1"></textarea>
          </div>
          <div id='button-box'>
            <div class='btn-row-container'>
              <button class='command-btn' type='button'
                id='modeToggle-btn'>Mapping</button>
              <button class='command-btn' type='button'
                id='calibrate-btn'>Calibrate</button>
            </div>
            <div class='btn-row-container'>
              <button class='command-btn' type='button'
                id='close-door-btn'>Open Door</button>
              <button class='command-btn' type='button'
                id='tools-btn'>Tools</button>
            </div>
            <div class='btn-row-container'>
              <button class='command-btn' type='button'
                id='mosaic-btn'>New Mosaic</button>
              <button class='command-btn' type='button'
                id='terrain-btn'>Terrain View</button>
            </div>
            <div class='btn-row-container'>
              <button class='command-btn' type='button'
                id='reset-btn'>Update</button>
              <button class='command-btn' type='button'
                id='shutdown-btn'>Shutdown</button>
            </div>
          </div>
         <!-- <div id='app-name-box'>PSW&nbsp;FireImager</div> -->
        </div>
      </div>
    </section>
    <section>
      <div id='bottom-box'>
        <div class='toolbar' id='toolbar-top'>
          <div id='camera-status'>Camera&nbsp;Not&nbsp;Ready</div>
          <div id='busy-led'>&nbsp;</div>
          <div id='radio-btns' class='radio-btns'>
            <input id='B12' type='radio' name='radio-btn' checked>
              <label id='lblB12' class='radiobutton-label' for='B12'>Fire&nbsp;</label>
            <input id='BWB' type='radio' name='radio-btn' >
              <label id='lblBBW' class='radiobutton-label' for='BWB'>Wide</label>
            <input id='B10' type='radio' name='radio-btn' >
              <label id='lblB10' class='radiobutton-label' for='B10'>B10</label>
            <input id='B08' type='radio' name='radio-btn' >
              <label id='lblB8' class='radiobutton-label' for='B08'>B8&nbsp;</label>
          </div>
          <div id='record-pause'>Record&nbsp;Paused</div>
        </div>
        <div class='toolbar' id='toolbar-bottom'>
          <div id='time-lbl'>Local</div>
          <div id='time-date-text' class='output-box-text'>&nbsp;</div>
          <div id='mission-div'>
            <label for='mission'>Mission</label> <input id='mission'
              placeholder='Mission name' type='text'>
          </div>
          <div id='image-period-div'>
            <label for='img-period'>Period</label>
            <input id='img-period' placeholder='3.500' type='text'>
            <label for='img-period' id='period-lbl'> sec</label>
          </div>
          <div id='mosaic-lbl' class='output-box-text'>Mosaic</div>
          <div id='mosaic-number-div' class='output-box-text'>1</div>
          <div id='imageID-lbl'>ImageID</div>
          <div id='ImageID-div' class='output-box-text'>0</div>
        </div>
      </div>
      <div id='icon-box'><img alt='' id='icon' src='resources/FS-Shield-Transparent.png'
              height='80' width='72'></div>
    </section>
  </div>

  <script type='application/dart' src='fireimager.dart'></script>
  <script src='packages/browser/dart.js' type="text/javascript"></script>
</body>
</html>

DartEditor 中现在有两个 Pub Build 菜单,也许您使用了第一个 Pub Build - minified,它不会复制 Dart 文件。如果您 运行 Pub Build - Debug Dart 文件可能会被复制(不确定,因为我从来没有以这种方式用于服务器端脚本)。

如果您将 fireimager_server.dart 文件移动到您的包的 bin 目录中,那么您可以 运行 使用 dart bin/fireimager_server.dart 或者您可以手动将其复制到构建目录。 根据包布局指南,bin 目录是服务器端脚本的正确目录。

如果它之前被复制到 build,则表明您将它放在 web 目录中,这不是服务器端 Dart 的正确位置。

更新

您通常使用 Pub Build - minified 进行生产。 Pub Build 的输出应该提供给浏览器,不应包含 fireimager_server.dartfireimager_server.dart 脚本是一个服务器应用程序,需要以不同方式部署。因此它应该进入 bin 目录。目前没有完美的服务器端部署选项,只是将您的包复制到服务器,运行 pub get 应该这样做,这样您就可以 运行 服务器使用 dart bin/fireimager_server.dart。如果 fireimager_server.dart 充当 Web 服务器并提供构建输出,则此部署变体也可以正常工作。只需使用 build 作为静态目录。