我正在将我的AngularJs项目从ES6“迁移”到TypeScript,我正在使用带有ts-loader
的webpack。
问题是编译的文件和源映射是在我的文件夹中写的,而不是像使用webpack-dev-server
时从内存中提供的bundle.js文件一样。
而不是在我的目录中index.ts
,我最终得到:
.
├── index.js
├── index.js.map
└── index.ts
可以这样做吗?
我的tsconfig.json是:
{
"compilerOptions": {
"target": "es6",
"sourceMap": true,
"module": "commonjs"
},
"exclude": [
"node_modules",
"src/dist"
],
"version": "1.6.2"
}
和webpack.config.js是:
module.exports = {
context: PATHS.app,
entry: {
app: ['./index.ts']
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
// add resolve clause:root
module: {
loaders: [
{ test: /\.ts$/, exclude: /node_modeuls/, loader: 'babel-loader!ts-loader' },
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' },
{ test: /\.less$/, loader: "style!css!less", exclude: /node_modules/ },
{ test: /\.html$/, loader: "html" },
{ test: /\.(ttf|eot|svg|otf)$/, loader: "file" },
{ test: /\.woff(2)?$/, loader: "url?limit=10000&minetype=application/font-woff" },
{ test: /\.jpe?g$|\.gif$|\.png$|\.svg$|\.woff$|\.ttf$|\.wav$|\.mp3$/, loader: require.resolve("file-loader") + "?name=../[path][name].[ext]"}
]
},
devServer: {
contentBase: "./src"
},
devtool: '#inline-source-map'
}
答案 0 :(得分:2)
我认为这与webpack
但与tsc
和IDE无关。
可能您的资源由IDE自动编译,默认情况下,编译结果会放在源文件旁边。
您可以尝试在IDE中禁用自动编译。大多数IDE都会识别compileOnSave
选项。在tsconfig.json
中将其设置为false,您应该没问题。
示例tsconfig.json
{
"compilerOptions": {
"target": "es6",
"sourceMap": true,
"module": "commonjs",
"compileOnSave": false
},
"exclude": [
"node_modules",
"src/dist"
],
"version": "1.6.2"
}
您还可以通过在outDir
中定义tsconfig.json
来尝试解决方法。
您的示例tsconfig.json
可能看起来像
{
"compilerOptions": {
"target": "es6",
"sourceMap": true,
"module": "commonjs",
"outDir": "compiled"
},
"exclude": [
"node_modules",
"src/dist"
],
"version": "1.6.2"
}
现在所有编译结果都将放在compiled
目录中,这很容易被忽略。