ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡΡ Π΄ΠΎ webpack 2 ΠΌΠΎΡ ΡΠ±ΠΎΡΠΊΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ:
ERROR in ./~/ng-table/src/browser/pager.html Module build failed
ΠΠΌΠΏΠΎΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (ΡΠ±ΠΎΠΉ):
import * as ngTable from 'ng-table'
Π’ΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ (ΡΡΠΏΠ΅Ρ ):
require('ng-table/bundles/ng-table.js')
ΠΊΠΎΠ½ΡΠΈΠ³ Π²Π΅Π±ΠΏΠ°ΠΊΠ°:
'use strict';
const webpack = require('webpack');
const NgAnnotatePlugin = require('ng-annotate-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const argv = require('yargs').argv;
const path = require('path');
module.exports = {
watch: false,
bail: true,
cache: true,
devtool: 'source-map',
entry: './typescript/app/app.ts',
output: {
path: path.resolve(__dirname, 'public'),
filename: 'build/main.bundle.js',
sourceMapFilename: '[name]-[chunkhash].map'
},
resolve: {
extensions: [
'.webpack.js',
'.web.js',
'.ts',
'.js'
],
alias: {
Raven: path.resolve(__dirname, 'node_modules/raven-js/src/raven.js')
}
},
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),
}),
new NgAnnotatePlugin({
add: true
}),
new ExtractTextPlugin('build/[name].css'),
new HtmlWebpackPlugin({
filename: 'index.html',
inject: false,
hash: true,
cache: false,
template: 'ejs-loader!./typescript/index.html',
locals: {
environment: ENVIRONMENT,
production: process.env.PRODUCTION,
cdnDomain: CDN_DOMAIN,
backendUrl: BACKEND_URL,
releaseVersion: RELEASE_VERSION
}
}),
new webpack.SourceMapDevToolPlugin({
filename: '[file].map', // if no value is provided the sourcemap is inlined
test: /\.(ts|js)($|\?)/i // process .js and .ts files only
})
],
module: {
rules: [
{
test: /\.ts$/,
loader: 'awesome-typescript-loader'
},
{
test: /\.p?css$/,
loader: ExtractTextPlugin.extract({
fallbackLoader: 'style-loader',
loader: [
'css-loader',
'postcss-loader'
]
})
},
{
test: /\.html$/,
exclude: /index.html$/,
use: [
{
loader: 'ngtemplate-loader',
options: {
relativeTo: path.resolve(__dirname, 'typescript')
}
},
{
loader: 'html-loader'
}
]
}
]
},
devServer: {
historyApiFallback: true
}
}
@faceleg ΡΡ ΡΠΌΠΎΠ³ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ? Π― ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ AngularJS 1.5 Π΄ΠΎ Webpack 2 ΠΈ Π²ΠΈΠΆΡ GET http://app.finderbox.dev/app/ng-table/pager.html 404 (Not Found)
Π² ΠΆΡΡΠ½Π°Π»Π΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
@richtmat Π½Π΅Ρ, Ρ ΡΠ΄Π°Π»ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ webpack 1. Π₯ΠΎΡΡ ΠΎΡΠ΅Π½Ρ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ngtemplate-loader
ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ relativeTo
. ΠΠ΄Π½Π°ΠΊΠΎ Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΎΡΠΈΠ±ΠΎΠΊ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅ Π½Π°ΡΠ΅Π» http://app.finderbox.dev/...
. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½ΠΎ: webpack-contrib/html-loader#91. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ [email protected]
ΠΈ [email protected]
.
ΠΠ° Π²Π°ΡΠ΅ΠΌ test
Π·Π° .html
ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ relativeTo
ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Webpack. Π£ ΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, ΠΈ ΡΠ°Π±Π»ΠΎΠ½Ρ ng-ΡΠ°Π±Π»ΠΈΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² ΠΊΠ΅Ρ. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ²ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π΅Π³ΠΎ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°ΠΌ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ, Ρ Π²ΠΎΠ·ΠΈΠ»ΡΡ Ρ Π±Π»ΠΎΠΊΠΎΠΌ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°/ΡΠ΅ΡΡΠ° Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ Π΄Π»Ρ node_modules.
@mheppner , ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅Ρ (Π·Π΄Π΅ΡΡ ΠΈ https://github.com/esvit/ng-table/issues/969).
Π Π°Π·Π½ΠΈΡΠ° Π»ΠΈΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΠΎΠΆΠ΅ Π½Π΅Π²Π΅ΡΠ½Ρ. URL-Π°Π΄ΡΠ΅Ρ, Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΠΈΠΉΡΡ Π½Π° .dev
, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΠΈΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ URL-Π°Π΄ΡΠ΅ΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π²Ρ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ΄Π° ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ.
ΠΠ°ΠΊ Ρ ΡΠΊΠ°Π·Π°Π» Π² https://github.com/esvit/ng-table/issues/969 , Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° Π² ΡΠ²ΠΎΠΈ ΡΠ°ΠΉΠ»Ρ. Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΊΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: $templateCache.put('ng-table/pager.html', html);
. Π― Π²ΡΠ΅ Π΅ΡΠ΅ ΠΈΠ·ΠΎ Π²ΡΠ΅Ρ
ΡΠΈΠ» ΠΏΡΡΠ°ΡΡΡ Π²ΡΡΡΠ½ΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ng-table ΠΈΠ»ΠΈ webpack...
ΠΠ²Π΅ΡΡ Ρ, ΡΠ° ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°
Yo, Ρ ΡΠΌΠΎΠ³ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΡΠΏΠΎΡΠΎΠ± ΠΈΠΌΠΏΠΎΡΡΠ° ng-table Π² ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠΌΠΏΠΎΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΡΠΏΡΠ°Π²ΠΈΠ» ΡΡΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ:
import 'ng-table/bundles/ng-table';
ΠΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ: ΠΈΠΌΠΏΠΎΡΡ 'ΠΈΠ·-ΡΠ°Π±Π»ΠΈΡΡ/ΡΠ²ΡΠ·ΠΊΠΈ/ΠΈΠ·-ΡΠ°Π±Π»ΠΈΡΡ';
ΠΠ΄Π΅ΡΡ ΡΠ° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅ Π½ΡΠ°Π²ΠΈΡΡΡ
import { ngTableModule } from 'ng-table';
ΡΠΎΠ³Π΄Π° Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Ρ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Ρ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ HTTP 404.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΏΠΎΡΡΠ° Π½Π°
import 'ng-table/bundles/ng-table';
ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π²Π΅ΡΡ Π½ΠΈΠΌ/Π½ΠΈΠΆΠ½ΠΈΠΌ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»ΠΎΠΌ, Π½ΠΎ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°: ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ^ ΠΈ v Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ. Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π½ΠΎ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π΅Ρ.
ΠΡΡΡ ΠΈΠ΄Π΅ΠΈ?
@sargue ΠΡΠΎ Ρ ΠΎΠΏΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΡΠ΅Π², Π½ΠΎ Ρ ΡΠ°ΠΌ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ^ ΠΈ v Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ.
ΠΠΎΠ±Π°Π²Π»ΡΡΡ
import 'ng-table/bundles/ng-table.css';
:)
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @jheimbouch , Ρ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π°Π΄ ΡΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ. ΠΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΠΏΠ°ΡΠΈΠ±ΠΎ, ΠΌΠΎΠΆΠ΅Ρ Π΅ΡΠ΅ ΠΊΠΎΠΌΡ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ.
Π― ΡΠΌΠΎΠ³ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ HTML-ΡΠ°ΠΉΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Webpack, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² ΡΠ²ΠΎΠΉ webpack.config.js ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
module: {
rules: [
// ...
{ test: /ng-table\/.*\.html$/, use: ['ngtemplate-loader?requireAngular&relativeTo=/src/browser/&prefix=ng-table/', 'html-loader'] }
]
}
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅Π±ΡΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ NPM ngtemplate-loader
ΠΈ html-loader
. ΠΠΎΠ»Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ: https://github.com/esvit/ng-table/issues/969#issuecomment -703458126
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Yo, Ρ ΡΠΌΠΎΠ³ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΡΠΏΠΎΡΠΎΠ± ΠΈΠΌΠΏΠΎΡΡΠ° ng-table Π² ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠΌΠΏΠΎΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΡΠΏΡΠ°Π²ΠΈΠ» ΡΡΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ:
import 'ng-table/bundles/ng-table';