如何解决配置webpack配置与打字稿
最近,我正在尝试使用webpack创建一个React TS项目,但由于某种原因它无法运行该项目:
--webpack.config.ts
--package.json
--tsconfig-for-webpack-config.json
--src
|
--client
|
--tsconfig.json
--src
|
--app.tsx
--index.tsx
--index.css
--index.html
--tsconfig.json
import path from 'path';
import { Configuration } from 'webpack';
import ManifestPlugin from 'webpack-manifest-plugin';
import cssnano from 'cssnano';
import HtmlWebpackPlugin from 'html-webpack-plugin';
/**
* Server config for webpack
*/
const IS_DEV = process.env.NODE_ENV !== 'production';
const SERVER_PORT = process.env.PORT || 4000;
const WEBPACK_PORT = 9000;
const nodeModulesPath = path.resolve(__dirname,'node_modules');
const targets = IS_DEV ? { chrome: '79',firefox: '72' } : '> 0.25%,not dead';
const config: Configuration = {
mode: IS_DEV ? 'development' : 'production',devtool: IS_DEV ? 'inline-source-map' : false,entry: './src/client/src/index.tsx',target: 'web',output: {
path: path.join(__dirname,'dist','statics'),filename: `[name]-[hash:8]-bundle.js`,chunkFilename: '[name]-[hash:8]-bundle.js',publicPath: '/statics/',},resolve: {
extensions: ['.js','.ts','.tsx','.css','.scss'],optimization: {
minimize: !IS_DEV,splitChunks: {
cacheGroups: {
vendors: {
test: /[\\/]node_modules[\\/]/,name: 'vendors',chunks: 'all',priority: 10,module: {
rules: [
{
test: /\.tsx?$/,exclude: [/node_modules/,nodeModulesPath],use: {
loader: 'babel-loader',options: {
presets: [
['@babel/env',{ modules: false,targets }],'@babel/react','@babel/typescript',],plugins: [
'@babel/proposal-numeric-separator','@babel/plugin-transform-runtime',['@babel/plugin-proposal-decorators',{ legacy: true }],['@babel/plugin-proposal-class-properties',{ loose: true }],'@babel/plugin-proposal-object-rest-spread',{
test: /\.css$/,use: [
{
loader: 'style-loader',{
loader: 'css-loader',options: {
modules: {
localIdentName: '[name]__[local]___[hash:base64:5]',sourceMap: IS_DEV,{
loader: 'postcss-loader',options: {
sourceMap: IS_DEV,plugins: IS_DEV ? [cssnano()] : [],{
test: /.jpe?g$|.gif$|.png$|.svg$|.woff$|.woff2$|.ttf$|.eot$/,use: 'url-loader?limit=10000',devServer: {
port: WEBPACK_PORT,overlay: IS_DEV,open: IS_DEV,plugins: [
new ManifestPlugin(),new HtmlWebpackPlugin({
template: path.join(__dirname,'src','client','index.html'),}),externals: {
react: 'React','react-dom': 'ReactDOM',};
export default config;
和我的tsconfig-for-webpack-config.json包含:
{
"compilerOptions": {
"module": "commonjs","target": "es5","esModuleInterop": true
}
}
当我运行命令时:
"dev": "cross-env NODE_ENV=production TS_NODE_PROJECT=\"tsconfig-for-webpack-config.json\" webpack -p"
在我的控制台中,我没有收到任何错误,但是当它运行我的网络服务器时,我得到了:
我尝试了几种配置,但是没有得到服务器渲染的结果,所以有想法的人吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。