是否可以配置很棒的打字稿加载器或 webpack 或 tsc 来编译从条目中引用(直接、间接(的文件?我想移植一个现有的应用程序,并希望能够编译我的部分移植的代码,而一些未引用的文件不可编译。
二手工具
- 很棒的打字稿加载器:3.1.2,
- 网络包:2.3.3
网络包.js
var webpack = require('webpack');
module.exports = {
entry: {
'index': './Scripts/index.ts',
},
output: {
path: helpers.root('dist'),
filename: '[name].js'
},
resolve: {
extensions: ['.ts', '.js']
},
module: {
rules: [
{
test: /.ts$/,
loader: 'awesome-typescript-loader'
}
]
}
}
TSCONFIG
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"importHelpers": true,
"typeRoots": [
"node_modules/@types"
],
"sourceMap": true,
"lib": [
"dom",
"es5",
"scripthost"
],
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"noImplicitAny": false,
"suppressImplicitAnyIndexErrors": true
},
"exclude": [
"node_modules"
]
}
错误消息(来自 index.ts 未引用的文件(
[at-loader] Checking started in a separate process...
[at-loader] Checking finished with 46 errors
Hash: a2f6e7a56b152c02a325
Version: webpack 2.3.3
Time: 3554ms
Asset Size Chunks Chunk Names
index.js 2.73 kB 0 [emitted] index
[0] ./Scripts/index.ts 79 bytes {0} [built]
ERROR in [at-loader] ./Scripts/editor/foo.ts:47:61
TS2448: Block-scoped variable 'eventList' used before its declaration.
... MORE ERRORS ...
npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "run" "build"
npm ERR! node v6.9.2
npm ERR! npm v3.10.9
npm ERR! code ELIFECYCLE
npm ERR! FooBar@1.0.0 build: `webpack --config webpack.config.js`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the FooBar@1.0.0 build script 'webpack --config webpack.config.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the FooBar package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! webpack --config webpack.config.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs FooBar
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls FooBar
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! D:FooBarnpm-debug.log
Webpack 本身不包含任何未导入的文件。但是 TypeScript 似乎会检查项目中的每个文件,除非另有配置。从tsconfig.json
文档中:
如果"files"和"include"都未指定,则编译器默认包含包含目录和子目录中的所有TypeScript(.ts,.d.ts和.tsx(文件,但使用"exclude"属性排除的文件除外。
您可以将files
选项设置为仅包含入口点,并且它应仅检查要导入的文件。
"files": [
"Scripts/index.ts"
]
据我测试,您还可以将其设置为空数组,因此默认情况下它不会检查任何文件,awesome-typescript-loader
会按预期将文件传递给编译器,并且它们仍将被检查。
"files": []