Node.js Typescript-Grunt、Grunt、watch/compile和dropbox的问题

Node.js Typescript-Grunt、Grunt、watch/compile和dropbox的问题,node.js,gruntjs,typescript,npm,Node.js,Gruntjs,Typescript,Npm,更新:在另一台计算机开始在监视和编译时出现问题后,我认为它可能与编译时生成的tscommandxxxxxx.tmp.txt文件有关……有时在完成时不会删除,有时则从未出现 更新2:我认为这个偶然的错误可能是一个原因: chokidar中发生错误:{[Error:EONOENT,stat'C:\Users\me\dropbox\xxx\xxx\myApp\src\.subl3cb.tmp']错误号:34,代码:'enoint',路径:'C:\\Users\\me\\dropbox\\xxx\\xx

更新:在另一台计算机开始在监视和编译时出现问题后,我认为它可能与编译时生成的tscommandxxxxxx.tmp.txt文件有关……有时在完成时不会删除,有时则从未出现

更新2:我认为这个偶然的错误可能是一个原因:
chokidar中发生错误:{[Error:EONOENT,stat'C:\Users\me\dropbox\xxx\xxx\myApp\src\.subl3cb.tmp']错误号:34,代码:'enoint',路径:'C:\\Users\\me\\dropbox\\xxx\\xxx\\myApp\\src\.subl3cb.tmp'}

当我去寻找那个临时文件时,它不在那里,所以我无法尝试读取它。我对chokidar一无所知,除了它依赖于
grunt ts


我一直在使用Sublime(而不是VS)和node/npm、
grunt
以及
grunt ts
处理Typescript(0.9.5)。Grunt/Grunt ts被设置为监视目录中对
.ts
文件的更改,然后将它们编译到
.js
。包括本地npm模块在内的所有项目文件都存储在dropbox上,我开发的每台计算机也在全球安装了
grunt cli
。几周内一切都很好,上周我看到TypeScript1.0RC可用,所以我尝试将
grunt ts
依赖项从0.9.5更改为1.0,看看它是否有效。但它没有,所以我卸载了
grunt ts
并重新安装了它。它仍然可以在我的3台电脑中的2台上正常工作,但由于某种原因,我的主电脑(我发起更改的那台)无法成功地监视目录并重新编译。我卸载了node,删除了我能找到的npm模块目录(其中一个安装了node,然后在appdata/roaming下删除了2个,其中一个是缓存文件夹),然后只在其他PC上重新安装了我拥有的东西,但这并没有什么不同。最令人恼火的是没有错误,它只是在我从项目文件夹运行
grunt
时发生的初始编译之后出现…从不更新文件更改…如果我在另一台pc上运行
grunt
并进行文件更改,一旦dropbox同步,pc就会监视并编译良好

除了试图找到一些旧的npm/节点信息被缓存的地方外,我不知道该尝试什么

尽管这不重要,因为它可以通过dropbox在其他PC上工作,但以下是GrunFile:

module.exports = function (grunt) {
    "use strict";

    grunt.initConfig({
        ts: {
            options: {
                target: 'es5',
                module: 'amd',
                sourcemap: true,
                declaration: false,
                nolib: false,
                comments: false
            },
            dev: {
                src: ["src/**/*.ts"],
                watch: 'src',
                outDir: 'src'
            }
        },
    });

    //load the task
    grunt.loadNpmTasks("grunt-ts");
    grunt.registerTask("default", ["ts:dev"]);
};
Package.json:

{
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-ts": "~1.7.2-2",
    "typescript": "0.9.5"
  }
}
Typescript 1.0RC是可用的,所以我尝试将grunt ts依赖项从0.9.5更改为1.0,以查看它是否可以工作

您不需要修改
grunt ts
的内部
package.json
。您可以从
包.json中执行此操作:

e、 g:

{
  "devDependencies": {
    "grunt" : "~0.4.1",
    "grunt-ts" : "~1.7.2",
    "typescript" : "0.9.7",
  }
}
关于:

缓存旧的npm/节点信息

咕噜没有

你能分享你的package.json吗?如果可以,请尝试最新版本的grunt ts(
1.7.2-2

{
  "devDependencies": {
    "grunt" : "~0.4.1",
    "grunt-ts" : "~1.7.2-2",
    "typescript" : "0.9.7",
  }
}

在卸载并重新安装了全局级别的所有与节点相关的内容之后,我决定在项目中执行相同的操作…我以多种不同的方式执行所有操作,但结果总是相同的

所以我意识到我在dropbox上的其他地方有一个很小的教程项目,并为该项目运行了
grunt
,并且观看/编译工作正常!我记得我在开始时直接从那个项目复制了
gruntfile
package.json
,因此它们与
npm
包和目录结构完全相同


最后,我删除了我更大的应用程序的
node\u modules
文件夹,并将工作教程中的
node\u modules
文件夹复制到原来的位置……它神奇地工作了……但不是神奇地,原来旧项目使用的是
grunt ts 1.6.4
,在我尝试升级ts版本的过程中,我更新了grunt ts,无论出于何种原因,grunt ts在1.7.2-2中对我不起作用。

感谢您的回复,我在上面添加了package.json。但是,我不认为这是问题所在,因为我的另外两台电脑使用的是完全相同的package.json和gruntfile,因为它们存储在dropdox上。PS-我喜欢你在youtube上关于打字脚本和角度的视频!好像另一台计算机已停止监视/编译..我想我在它仍在编译时再次保存了,它抛出了一个错误,然后停止了工作。我认为.tmp文件是一个问题。我认为chokidar依赖性是一个问题。我不确定在1.6.4到1.7.2-2的升级过程中发生了什么,但我无法干净地安装grunt ts 1.7.2-2,错误似乎是重建节点gyp和chokidar。如果您想让我在grunt ts上记录任何问题,请告诉我。如果您遇到fsevents错误,您可以安全地忽略它们。我刚刚创建了一个问题来跟踪:你能试着用
grunt ts
repo中的watch测试来运行它吗?取消对此行的注释:并运行
grunt ts:fail
,然后尝试编辑文件。它会被你关注吗?附言:如果你能把它发布在github或bitbucket内部的私人回购上,我很乐意看看你的项目