尝试使用 webpack-dev-server 为我的应用程序提供服务时出现以下错误:
ERROR in ./src/index.tsx
Module not found: Error: Can't resolve './App' in
'C:\Users\user\Desktop\react-resources-boilerplate\src'
@ ./src/index.tsx 15:28-44
@ multi (webpack)-dev-server/client?http://localhost:8080 ./src/index.tsx
Run Code Online (Sandbox Code Playgroud)
这是我的 webpack 配置文件:
const HtmlWebPackPlugin = require('html-webpack-plugin');
const path = require('path');
module.exports = {
entry: path.resolve(__dirname, 'src', 'index.tsx'),
module: {
rules: [
{
test: /\.ts|\.tsx$/,
loader: "ts-loader",
},
]
},
plugins: [
new HtmlWebPackPlugin({
template: "./src/index.html",
filename: "./index.html"
})
]
};
Run Code Online (Sandbox Code Playgroud)
这是我的 tsconfig 文件:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"jsx": "react",
"sourceMap": true,
"outDir": "./dist",
"rootDir": …Run Code Online (Sandbox Code Playgroud) 我正在使用Webpack(2.3.3)在TS中构建我的Aurelia应用程序.但是,由于我使用的includeAll是AureliaPlugin(2.0.0-rc.2)选项,因此ts-loader(2.0.3)会对没有输出任何输出的d.ts文件发出嘘声.
这是我的ts文件规则: { test: /\.ts$/, include: /ClientApp/, use: "ts-loader" }
我需要更改测试值,使其匹配名为*.ts的文件,但*.d.ts除外.你能帮我吗?
注意:我看到已经存在类似的正则表达式问题,但是那个问题对我不起作用.
Symfony Encore 现在默认支持使用 TypeScript(添加对 enableTypescriptLoader 的支持),而且效果很好。但是,我想使用 tsconfig.json 文件配置我的 TypeScript 配置。
我试着弄清楚把它放在哪里,但我迷失在了兔子洞里,不知道应该把文件放在哪里,让 ts-loader 捡起它。或者,如果有启用此功能的配置。
我的打字稿编译抛出以下错误
TS2531:对象可能为“空”。
我正在转换带有大量此类错误的代码,只是想抑制它们以完成构建工作。据我了解,在 tsconfig.json 文件中添加以下内容可以抑制此错误。
“compilerOptions”:{“strictNullChecks”:false}
但是错误仍然显示。我找不到特定于此错误的任何其他编译器选项。有没有办法抑制它?
我已从 Webpack 3 升级到 Webpack 4。\n从那时起,我收到了很多有关未从某些文件导出的导入的警告。
\n\n./packages/utils/logging/index.ts\nAttempted import error: \xe2\x80\x98Options\' is not exported from \'./loggers/log\'.\n @ ./packages/utils/index.ts\n @ ./src/App.tsx\n @ multi whatwg-fetch @babel/polyfill ./src/App.tsx\nRun Code Online (Sandbox Code Playgroud)\n\n我ts-loader与一起使用ForkTsCheckerWebpackPlugin使用。\n我已经检查了警告的导出,它们看起来不错。该代码确实有效,但是我仍然收到这些警告。
tsconfig.json以供参考:
{\n "compilerOptions": {\n "outDir": "build/dist",\n "module": "esnext",\n "target": "es5",\n "lib": ["es6", "dom"],\n "baseUrl": ".",\n "sourceMap": true,\n "allowJs": true,\n "jsx": "react",\n "moduleResolution": "node",\n "forceConsistentCasingInFileNames": true,\n "noImplicitReturns": true,\n "noImplicitThis": true,\n "strictNullChecks": true,\n "suppressImplicitAnyIndexErrors": true,\n "noUnusedLocals": false,\n "noUnusedParameters": false,\n "allowSyntheticDefaultImports": true,\n "skipLibCheck": true,\n "resolveJsonModule": true\n },\n "include": ["packages/**/*"],\n …Run Code Online (Sandbox Code Playgroud) 我想将 ts-loader 与 babel-polyfill 一起使用,但没有 babel-loader。但是当我尝试构建项目时,我收到了这个错误。谁能告诉我我错过了什么。
ERROR in ./src/index.tsx 4:16
Module parse failed: Unexpected token (4:16)
File was processed with these loaders:
* ./node_modules/ts-loader/index.js
* ./node_modules/tslint-loader/index.js
You may need an additional loader to handle the result of these loaders.
| import ReactDOM from "react-dom";
| import { MyComponent } from "./containers/my-component";
> ReactDOM.render(<MyComponent/>, document.getElementById("root"));
@ multi babel-polyfill ./src/index.tsx kb[1]
Run Code Online (Sandbox Code Playgroud)
|
包.json
{
"name": "test-react",
"version": "1.0.0",
"description": "Test",
"main": "index.js",
"scripts": {
"start": "node index.js",
"build": ".\\node_modules\\.bin\\webpack --config webpack.dev.js",
"build-w": …Run Code Online (Sandbox Code Playgroud) 我有一组使用类似结构在我的个人项目中重复使用的包。
\n出于生产目的,它们是用TypeScripttsc编写的,并在发布到 npm 之前编译成 JavaScript ,以便我可以将它们安装在我的其他项目中。我还使用Jasmine对它们进行测试。
在开发中,我使用Webpack及其ts-loader来编译 TypeScript,这样我就可以在浏览器中运行的示例脚本中使用它。我通常还在我使用这些包的项目中使用 Webpack,尽管它们是在发布之前编译的,这些项目将仅将它们视为 JavaScript 并且不需要使用ts-loader.
我在任何地方都使用ES 模块语法,因此我可以在每个上下文中轻松地使用相同的语法,而不必担心在 Node 的 CommonJS 和浏览器的 ES 模块语法之间切换。为了在 Jasmine 中允许这样做,jasmine.json我在我的配置文件中设置了"jsLoader": "import".
我在如何撰写陈述方面遇到了问题import。特别是,如何以适用于我开发这些包时出现的每个用例的方式指定文件扩展名。
TypeScript 的 Node 模块解析对文件扩展名做出了一些有用的假设:
\n\n\nTypeScript 将模仿 Node.js 运行时解析策略,以便在编译时找到模块的定义文件。为了实现这一点,TypeScript 将 TypeScript 源文件扩展名(.ts、.tsx 和 .d.ts)覆盖在 Node\xe2\x80\x99s 解析逻辑上。
\n
这意味着如果我使用诸如 TypeScript 之类的代码,import { foo } …
我为我的应用程序创建了一个最小的webpack示例,我尝试使用带有"./file.name.html"的templateUrl进行编译.但我的应用程序显示的唯一内容是我的索引页面上的templateUrl"./ file.name.html"的名称.这些应用程序似乎有效,因为控制台和控制台都没有错误
<app>... Loading </app>
Run Code Online (Sandbox Code Playgroud)
不再显示了.在我尝试使用webpack之前,我使用过systemJs,而我的应用程序运行得非常好.所以我不认为这是一个应用程序问题.
我的起始文件名是boot.ts
/// <reference path="../typings/index.d.ts" />
import 'core-js/es6';
import 'core-js/es7/reflect';
import "zone.js/dist/zone";
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);
Run Code Online (Sandbox Code Playgroud)
app.component定义看起来像
.... Imports
@Component({
selector: 'sxp-app',
templateUrl: "./app.component.html"
})
export class AppComponent { ... }
Run Code Online (Sandbox Code Playgroud)
我的webpack.config.js
var path = require('path');
module.exports = {
entry: "./App/boot.ts",
output: {
path: path.join(__dirname, './Scripts/dist'),
filename: "bundle.js"
},
resolve: {
extensions: ['.ts', '.js']
},
module: {
loaders: [
{
test: /\.ts$/, …Run Code Online (Sandbox Code Playgroud) 我有这个档案
routing.ts
class RouteConfig {
// Some implementation
}
Run Code Online (Sandbox Code Playgroud)
我这样使用
app.module.ts
angular.module("ApplicationsApp", [
"ApplicationsApp.Services",
"ApplicationsApp.Clients",
"ApplicationsApp.Application"])
.config(RouteConfig);
Run Code Online (Sandbox Code Playgroud)
然后,我使用导入两个先前的文件
索引
import "./scripts/routing.ts";
import "./scripts/app.module.ts"";
Run Code Online (Sandbox Code Playgroud)
我正在使用webpackand ts-loader并且index.ts是入口点之一。构建成功,但是当我运行它时,出现此错误
app.module.ts:5 Uncaught ReferenceError: RouteConfig is not defined
at Object.<anonymous> (app.module.ts:5)
at __webpack_require__ (bootstrap 755a82fd7c11e301b6c1:676)
at fn (bootstrap 755a82fd7c11e301b6c1:87)
at Object.<anonymous> (index.ts:4)
at __webpack_require__ (bootstrap 755a82fd7c11e301b6c1:676)
at fn (bootstrap 755a82fd7c11e301b6c1:87)
at Object.defineProperty.value (events.js:302)
at __webpack_require__ (bootstrap 755a82fd7c11e301b6c1:676)
at logLevel (bootstrap 755a82fd7c11e301b6c1:722)
at main.min.js:726
Run Code Online (Sandbox Code Playgroud)
我给的配置ts-loader看起来像
{
configFile: paths.resolveOwn('config/tsconfig.json'),
compilerOptions: { …Run Code Online (Sandbox Code Playgroud)