我正在构建一个使用TypeScript和WebPack4的React应用程序。我试图从react-select
导入一个CSS文件,但我得到一个一般性错误:
ERROR in ./node_modules/react-select/dist/react-select.css
Module parse failed: Unexpected token (8:0)
You may need an appropriate loader to handle this file type.
| * MIT License: https://github.com/JedWatson/react-select
| */
| .Select {
| position: relative;
| }
@ ./src/App.react.tsx 28:0-45
@ ./src/Root.react.tsx
@ ./src/index.tsx
@ multi (webpack)-dev-server/client?http://localhost:3000 webpack/hot/dev-server ./src/index.tsx
我在尝试为.graphql
文件添加加载器时遇到了类似的问题...我想这些问题是相关的;我的配置中的某些东西一定是关闭的,从而无法利用这些额外的加载器。
我直接从https://github.com/webpack-contrib/css-loader获取了基本的css-loader
设置。
我拥有的文件加载器
工作得非常好。
以下是我认为相关的代码片段:
从webpack.common.ts
:
const config: webpack.Configuration = {
module: {
rules: [
...
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
},
],
},
resolve: {
extensions: ['.ts', '.tsx', '.js', '.css'],
},
...
};
import 'react-select/dist/react-select.css';
...
import * as HTMLPlugin from 'html-webpack-plugin';
import * as CleanWebpackPlugin from 'clean-webpack-plugin';
import * as webpack from 'webpack';
const config: webpack.Configuration = {
// Root TS file for bundling
entry: './src/index.tsx',
module: {
rules: [
// Bundle files (e.g. images)
{
test: /\.(png|jpg|gif)$/,
use: ['file-loader'],
},
// Transpile & type check with babel/typescript loader
{
test: /\.tsx?$/,
use: [
{
// Need babel for React HMR support (otherwise could drop babel and use just typescript)
loader: 'babel-loader',
options: {
babelrc: true,
plugins: ['react-hot-loader/babel'],
},
},
'ts-loader',
],
},
// Handle .css files
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
},
],
},
// Enable served source maps
devtool: 'inline-source-map',
resolve: {
// Include all these extensions in processing (note we need .js because not all node_modules are .ts)
extensions: ['.ts', '.tsx', '.js', '.css'],
},
// Webpack Dev Server for running locally
devServer: {
// Play nicely with react-router
historyApiFallback: true,
port: 3000,
// Enable hot module reloading (HMR)
hot: true,
},
plugins: [
// Cleans the build folder per-build/reload
new CleanWebpackPlugin(['dist']),
// Builds the .html file for entering into bundle
new HTMLPlugin({
template: 'INDEX_TEMPLATE.html',
}),
// HMR plugins
new webpack.NamedModulesPlugin(),
new webpack.HotModuleReplacementPlugin(),
// Prevents webpack watch from going into infinite loop (& stopping on retry) due to TS compilation
new webpack.WatchIgnorePlugin([
/\.js$/,
/\.d\.ts$/,
]),
],
};
export default config;
tsconfig.json
{
"compilerOptions": {
// Required option for react-hot-loader
"target": "es6",
// Required option for react-hot-loader
"module": "commonjs",
"strict": true,
"jsx": "react",
// Absolute imports start from here
"baseUrl": ".",
"sourceMap": true
}
}
如果还有什么值得注意的可能是问题的一部分,请告诉我...谢谢!
操作这里。这似乎是一个愚蠢的问题:我点击WebStorm TypeScript编译器上的“Compile All”,然后CSS加载器开始正常工作。所以我猜webpack使用的是一个未更新的webpack.common.js
文件,而不是我问题中的webpack.common.ts
文件。
试图理解为什么它引用已编译的.js
文件,尽管我的命令是:
webpack-dev-server--模式开发--open--config config/webpack.development.ts
可能与我使用webpack-merge
并因此导入webpack.common有关:从'./webpack.common'导入common;
。导入中的Sans扩展,由于某种原因,它必须默认为.js
。
如果其他任何人遇到了这个问题,这个问题的有用提示是配置WebStorm将*.ts*.js*.js.map全部删除:使用tsconfig.json中的outDir选项将生成的文件(.js和.js.map)输出到一个不同的文件夹。然后可以轻松清除生成文件夹
如果我查到更多情况就会回来报告。
我用Webpack创建了我的项目,并在开发中使用了Vue.js,但是我不能注入
集成在我的React应用程序的材料ui-dropzone,我得到了这个错误: ./~/coport-ui-dropzone/src/index.jsx模块解析失败:...\Client\node_modules\coport-ui-dropzone\src\index.jsx意外令牌(123:26)您可能需要一个适当的加载程序来处理此文件类型。语法错误:意外令牌(123:26) 以下是我的网页包配
我不知道在ReactJS网页包中加载图像的合适加载程序是什么, 你可以帮我一把吗?我得到这个错误: 以下是网页包配置: 非常感谢!!
我从webpack3升级了我的项目。x到网页4。28.4,当我运行用于生产的网页包时,它向我显示错误! 我使用happypack来提高编译速度! 它没有工作!有人能解决我的问题吗?非常感谢!
我刚刚开始使用一个升级的模板将我的aspdotnet core Aurelia项目升级到3.0,该模板是我用来创建项目的模板。 我把我的文件(在以前的项目工作)到这个新版本,我已经结束了一堆错误,从webpack的第一个是在标题中概述。 网页包也已升级。这是我收到的第一个错误。。 发现了与此相同的问题,结果发现我没有替身,所以是另外一个问题。。 我还检查了这个标题非常相似的问题,但我相信webpa
我尝试使用WebPack4/Redux/React,并在示例应用程序中得到以下错误: ./src/index.js]210字节{主}[生成][失败][1个错误]+13个隐藏模块 ./src/index.js模块解析失败中的错误:意外标记(3:16)您可能需要一个适当的加载程序来处理此文件类型。从“React”导入React;常量元素= 我尝试了不同的方法来解决这个问题(从注释掉的代码中可以明显看出