我正在尝试package.json在我的 TypeScript 应用程序中导入:
import packageJson from '../package.json';
Run Code Online (Sandbox Code Playgroud)
我的tsconfig.json包含以下内容:
{
"compilerOptions": {
"rootDir": "./src/"
"outDir": "./dist/",
"baseUrl": ".",
"resolveJsonModule": true
}
}
Run Code Online (Sandbox Code Playgroud)
问题是当我编译这个时,我得到
error TS6059: File '/path/to/package.json' is not under 'rootDir' '/path/to/app/src/'. 'rootDir' is expected to contain all source files.
我不知道我理解这个问题,因为这两个./src/与/.dist具有相同的父..,所以打字稿可能只是独自离开import '../package.json'和它的工作无论从rootDir或outDir。
无论如何,我尝试了以下方法,但结果并不令人满意:
rootDir- 编译有效,但dist将包含dist/src我不想要的outDir- 然后src被.js文件污染(.js.map如果sourceMap是真的) …我有一个项目运行名为"*.test.ts"的测试文件,其中包含jest和ts-jest.这很好但是当我启动webpack时,我得到了测试文件的错误:
ERROR in /some/path/note.test.ts
(27,3): error TS2304: Cannot find name '
Run Code Online (Sandbox Code Playgroud)
如何修复webpack配置以完全忽略测试文件?
这是webpack配置:
const path = require ( 'path' )
module.exports =
{ entry: './src/boot.tsx'
, node:
{ __dirname: false
}
, output:
{ path: path.resolve ( __dirname, 'app', 'build' )
, filename: 'app.js'
, publicPath: '/live-reload/'
}
, devtool: 'source-map'
, resolve:
{ extensions: ['', '.js', '.ts', '.tsx']
}
, module:
{ loaders:
[ { test: /\.tsx?$/
, exclude: /node_modules/
, loader: 'ts-loader'
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
[编辑]
我使用测试功能来记录看到的文件并且测试文件没有出现在那里,所以问题不在webpack上,包括错误的文件,而是打字机行为不正常(因为测试工作正常).