打字稿 - Grunt-TS,Grunt,watch / compile和dropbox的问题

时间:2014-03-04 06:34:09

标签: node.js gruntjs typescript npm

更新:在另一台计算机开始出现问题并进行编译后,我认为它可能与tscommandxxxxxx.tmp.txt文件有关,这些文件在编译时生成...有时它们不会被删除它完成了,有时它们永远不会出现

更新2 :我认为这种偶然的错误可能会起作用: Error happened in chokidar: { [ Error: EONOENT, stat 'C:\Users\me\dropbox\xxx\xxx\myApp\src\.subl3cb.tmp'] errno: 34, code: 'ENOENT', path: 'C:\\Users\\me\\dropbox\\xxx\\xxx\\myApp\\src\\.subl3cb.tmp' }

当我去寻找那个临时文件时,它不在那里,所以我不能尝试阅读它。除了grunt-ts

之外,我对chokidar一无所知

我一直在使用带有节点/ npm,gruntgrunt-ts的Sublime(不是VS)的Typescript(0.9.5)。 Grunt / Grunt-ts设置为查看目录以更改.ts文件,然后将其编译为.js。包括本地npm模块在内的所有项目文件都存储在Dropbox中,我开发的每台计算机也都安装了全局grunt-cli。一切都工作了几个星期,然后上周我看到Typescript 1.0RC可用,所以我试图将grunt-ts依赖从0.9.5更改为1.0,看看它是否可行。好吧,它没有,所以我卸载grunt-ts并重新安装它。它在我的3台PC中的2台仍能正常工作,但由于某种原因,我的主机(我发起更改的那台)将无法成功观看目录并重新编译。我已经卸载了节点,删除了我可以找到的npm模块目录(安装了节点的一个,然后是appdata / roaming下的2个 - 其中一个是缓存文件夹),然后只重新安装了我在其他PC上的东西,但它并没有带来什么不同。最烦人的部分是没有错误它只是在我从项目文件夹运行grunt时发生的初始编译后只是坐在那里...从不更新文件更改...如果我运行{{1在另一台PC上进行文件更改,一旦dropbox同步,PC就会监视并编译好。

除了试图找到某个旧的npm /节点信息被缓存的地方之外,我对想要尝试的内容一无所知......

即使它通过dropbox在其他PC上运行也没关系,这里是gruntfile:

grunt

的package.json:

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"]);
};

2 个答案:

答案 0 :(得分:0)

  

Typescript 1.0RC可用,所以我试图将grunt-ts依赖从0.9.5更改为1.0以查看它是否可行

您无需修改​​grunt-ts的内部package.json。您可以通过package.json执行此操作: https://github.com/grunt-ts/grunt-ts#alternate-compiler-version

例如:

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

关于:

  

旧的npm /节点信息被缓存

grunt-ts没有。

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

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

答案 1 :(得分:0)

卸载并重新安装在全局级别相关的所有节点后,我决定在项目中做同样的事情......我做了很多不同的方式,但总是得到相同的结果。

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

最后,我删除了我的较大应用程序的node_modules文件夹,并将node_modules文件夹从工作教程中复制到了...而且它神奇地起作用......奇怪的是,事实证明旧项目正在使用grunt-ts 1.6.4,并且在我试图升级TS版本的某个时刻,我更新了grunt-ts,无论出于何种原因,这对我来说都不适用于1.7.2-2。 / p>