admin管理员组文章数量:1201791
I have this javascript (TypeScript) file
index.ts
import
'../node_modules/bootstrap/dist/css/bootstrap.min.css';
import 'bootstrap';
import * as templates from './templates';
document.body.innerHTML = templates.main;
const mainElement =
document.body.querySelector('.b4.main');
const alertsElement =
document.body.querySelector('.b4-alerts');
mainElement.innerHTML = templates.welcome;
alertsElement.innerHTML = templates.alert;
When I run my project (with webpack dev server) I get the following error:
Module not found: Error: Can't resolve './templates' in '/Users/BorisGrunwald/Desktop/Node/b4-app/app'
I don't understand why it can't seem to find "templates.ts" since both files are in the same folder.
Here is a picture of my project structure:
My webpack config:
'use strict';
const path = require('path');
const distDir = path.resolve(__dirname,'dist');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const webpack = require('webpack');
module.exports = {
entry: './app/index.ts',
output: {
filename: 'bundle.js',
path: distDir
},
devServer: {
contentBase:distDir,
port:60800
},
plugins: [
new HtmlWebpackPlugin({
title: 'Better Book Bundle Builder'
}),
new webpack.ProvidePlugin({
$:'jquery',
jQuery:'jquery'
})
],
module: {
rules: [{
test:/\.ts$/,
loader:'ts-loader'
},{
test: /\.css$/,
use:['style-loader','css-loader']
},{
test: /\.(png|woff|woff2|eot|ttf|svg)$/,
loader:'url-loader?limit=100000'
}]
}
};
Templates.ts
export const main = `
<div class="container">
<h1>B4 - Book Bundler</h1>
<div class="b4-alerts"></div>
<div class="b4-main"></div>
</div>
`;
export const welcome = `
<div class="jumbotron">
<h1>Welcome!</h1>
<p>B4 is an application for creating book bndles</p>
</div>
`;
export const alert = `
<div class="alert alert-success alert-dismissible fade in"
role="alert">
<button class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<strong>Success!</strong> Bootstrap is working
</div>
`;
Can anyone see what is wrong?
I have this javascript (TypeScript) file
index.ts
import
'../node_modules/bootstrap/dist/css/bootstrap.min.css';
import 'bootstrap';
import * as templates from './templates';
document.body.innerHTML = templates.main;
const mainElement =
document.body.querySelector('.b4.main');
const alertsElement =
document.body.querySelector('.b4-alerts');
mainElement.innerHTML = templates.welcome;
alertsElement.innerHTML = templates.alert;
When I run my project (with webpack dev server) I get the following error:
Module not found: Error: Can't resolve './templates' in '/Users/BorisGrunwald/Desktop/Node/b4-app/app'
I don't understand why it can't seem to find "templates.ts" since both files are in the same folder.
Here is a picture of my project structure:
My webpack config:
'use strict';
const path = require('path');
const distDir = path.resolve(__dirname,'dist');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const webpack = require('webpack');
module.exports = {
entry: './app/index.ts',
output: {
filename: 'bundle.js',
path: distDir
},
devServer: {
contentBase:distDir,
port:60800
},
plugins: [
new HtmlWebpackPlugin({
title: 'Better Book Bundle Builder'
}),
new webpack.ProvidePlugin({
$:'jquery',
jQuery:'jquery'
})
],
module: {
rules: [{
test:/\.ts$/,
loader:'ts-loader'
},{
test: /\.css$/,
use:['style-loader','css-loader']
},{
test: /\.(png|woff|woff2|eot|ttf|svg)$/,
loader:'url-loader?limit=100000'
}]
}
};
Templates.ts
export const main = `
<div class="container">
<h1>B4 - Book Bundler</h1>
<div class="b4-alerts"></div>
<div class="b4-main"></div>
</div>
`;
export const welcome = `
<div class="jumbotron">
<h1>Welcome!</h1>
<p>B4 is an application for creating book bndles</p>
</div>
`;
export const alert = `
<div class="alert alert-success alert-dismissible fade in"
role="alert">
<button class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<strong>Success!</strong> Bootstrap is working
</div>
`;
Can anyone see what is wrong?
Share Improve this question edited Nov 16, 2018 at 8:23 Boris Grunwald asked Nov 15, 2018 at 19:38 Boris GrunwaldBoris Grunwald 2,7125 gold badges24 silver badges44 bronze badges 01 Answer
Reset to default 23Try if this works. This will allow importing from folder without the dots.
import {main, welcome, alert} from './templates';
Webpack does not look for .ts
files by default. You can configure resolve.extensions to look for .ts
. Don't forget to add the default values as well, otherwise most modules will break because they rely on the fact that the .js
extension is automatically used.
resolve: {
extensions: ['.ts', '.js', '.json']
}
This goes for all other files too, for example .scss
files etc. Error will be SassError: Can't find stylesheet to import.
本文标签: javascriptModule not found Error Can39t resolve 39templates39Stack Overflow
版权声明:本文标题:javascript - Module not found: Error: Can't resolve '.templates' - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1738639590a2104232.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论