2015-08-25 5 views
1

UPDATE:
Вполне вероятно, что это TypeScript issue в конце концов, вероятно, подходит для a PR merged earlier today.Webpack - Машинопись не может найти файл /node_modules/react/package.json


Я первоначально отправил это https://github.com/Microsoft/TypeScript/issues, но сообщили, что это не может быть машинопись ошибка.

Я использую машинопись @ рядом с webpack и ts-loader.

При запуске Webpack я получаю следующее сообщение об ошибке от typescript.js: 43445

C:\Users\Michael\Development\Replicate>webpack 
Using config file at C:\Users\Michael\Development\Replicate\tsconfig.json 
C:\Users\Michael\Development\Replicate\node_modules\typescript\lib\typescript.js:43445 
       throw new Error("Could not find file: '" + fileName + "'."); 
        ^
Error: Could not find file: 'C:/Users/Michael/Development/Replicate/node_modules/react/package.json'. 
    at getValidSourceFile (C:\Users\Michael\Development\Replicate\node_modules\typescript\lib\typescript.js:43445:23) 
    at Object.getSyntacticDiagnostics (C:\Users\Michael\Development\Replicate\node_modules\typescript\lib\typescript.js:43615:52) 
    at C:\Users\Michael\Development\Replicate\node_modules\ts-loader\index.js:186:42 
    at Array.forEach (native) 
    at Compiler.<anonymous> (C:\Users\Michael\Development\Replicate\node_modules\ts-loader\index.js:185:14) 
    at Compiler.applyPlugins (C:\Users\Michael\AppData\Roaming\npm\node_modules\webpack\node_modules\tapable\lib\Tapable.js:26:37) 
    at Compiler.<anonymous> (C:\Users\Michael\AppData\Roaming\npm\node_modules\webpack\lib\Compiler.js:193:12) 
    at Compiler.emitRecords (C:\Users\Michael\AppData\Roaming\npm\node_modules\webpack\lib\Compiler.js:282:37) 
    at Compiler.<anonymous> (C:\Users\Michael\AppData\Roaming\npm\node_modules\webpack\lib\Compiler.js:187:11) 
    at C:\Users\Michael\AppData\Roaming\npm\node_modules\webpack\lib\Compiler.js:275:11 
    at Compiler.applyPluginsAsync (C:\Users\Michael\AppData\Roaming\npm\node_modules\webpack\node_modules\tapable\lib\Tapable.js:60:69) 
    at Compiler.afterEmit (C:\Users\Michael\AppData\Roaming\npm\node_modules\webpack\lib\Compiler.js:272:8) 
    at Compiler.<anonymous> (C:\Users\Michael\AppData\Roaming\npm\node_modules\webpack\lib\Compiler.js:267:14) 
    at C:\Users\Michael\AppData\Roaming\npm\node_modules\webpack\node_modules\async\lib\async.js:52:16 
    at done (C:\Users\Michael\AppData\Roaming\npm\node_modules\webpack\node_modules\async\lib\async.js:248:21) 
    at C:\Users\Michael\AppData\Roaming\npm\node_modules\webpack\node_modules\async\lib\async.js:44:16 
    at FSReqWrap.oncomplete (fs.js:95:15) 

моего package.json

{ 
    "name": "Replicate", 
    "version": "1.0.0", 
    "description": "Reproducing typescript file not found bug", 
    "main": "webpack.config.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "author": "Michael Ross", 
    "license": "MIT", 
    "dependencies": { 
    "react": "^0.13.3", 
    "ts-loader": "^0.5.0", 
    "typescript": "^1.6.0-dev.20150825" 
    } 
} 

моего webpack.config.js

module.exports = { 
    entry: "./app.tsx", 
    output: { 
     filename: "bundle.js" 
    }, 
    resolve: { 
     extensions: ["", ".tsx", ".ts", ".js"] 
    }, 
    module: { 
     loaders: [ 
      { test: /\.ts(x?)$/, loader: "ts-loader" } 
     ] 
    } 
} 

мой app.tsx

import React = require('react'); 

class Demo extends React.Component<any, any> { 
    render() { 
     return <div>Trying to replicate</div> 
    } 
} 

React.render(<Demo />, document.getElementById("demo")); 

и только в том случае, мой tsconfig.json

{ 
    "compilerOptions": { 
     "target": "es5", 
     "module": "commonjs", 
     "jsx": "react", 
     "sourceMap": true 
    }, 
    "files": [ 
     "./typings/tsd.d.ts", 
     "./app.tsx" 
    ] 
} 

и tsd.json

{ 
    "version": "v4", 
    "repo": "borisyankov/DefinitelyTyped", 
    "ref": "master", 
    "path": "typings", 
    "bundle": "typings/tsd.d.ts", 
    "installed": { 
    "react/react.d.ts": { 
     "commit": "71a7d5306ae4f9893aafd2d85d38aac8789ebf33" 
    } 
    } 
} 

Если у меня есть ошибка конфигурации, помощь и руководство высоко ценится. Благодаря!

ответ

0

Изменение:

import React = require('react'); 

To:

var React = require('react'); 

Если ваш не собирается на ES6 пути, который должен быть:

import React from "react"; 

Это может быть проблемой.

+0

Я также попытался это, как хорошо, но это не имело никакого значения. Эта проблема была отмечена как ошибка в TypeScript (https://github.com/Microsoft/TypeScript/issues/4445) –

Смежные вопросы