Having trouble implementing sass stylesheets in components when running npm build only. Getting an error where the relative directory that is being read isn't relative to the compiled destination that the "*.scss.shim.ts" is being created. It is still relating back to the main src from the dev app directory (e.g. '../../../../../app/pages/home/home.scss.shim.ts') from the compiled directory. Any help would be appreciated. Not sure if it is related to angular-webpack-starter problem or have seen one other person with the same problem on 'angular/angular#11688'.
@Component({
selector: 'as-home',
templateUrl: './home.html',
styleUrls: [
'./home.scss'
]
})
export class HomeComponent {}
const webpack = require('webpack');
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const helpers = require('./helpers');
const constants = require('./constants');
const isProd = process.env.npm_lifecycle_event === 'build';
module.exports = {
entry: {
'polyfills': './src/app/polyfills.ts',
'vendor': './src/app/vendor.ts',
'app': './src/app/main.ts'
},
resolve: {
extensions: ['.ts', '.js', '.json', '.css', '.scss', '.html']
},
module: {
rules: [{
enforce: 'pre',
test: /^((?!(ngfactory|shim)).)*ts$/,
loader: 'tslint'
}, {
test: /\.ts$/,
loaders: [
'awesome-typescript-loader',
'angular2-template-loader',
'angular2-router-loader?loader=system&genDir=src/compiled/src/app&aot=' + isProd
]
}, {
test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: "file"
}, {
test: /\.html$/,
loader: 'html',
exclude: helpers.root('src', 'public')
}, {
test: /.(png|woff(2)?|jpeg|jpg|eot|ttf|svg|otf|scss|css)(\?[a-z0-9=\.]+)?$/,
exclude: helpers.root('src', 'app'),
loader: 'url-loader?limit=100000'
}, {
test: /\.css$/,
exclude: helpers.root('src', 'app'),
loader: ExtractTextPlugin.extract({
fallbackLoader: 'style-loader',
loader: ['css-loader']
})
},
{
test: /\.css$/,
include: helpers.root('src', 'app'),
loader: 'raw'
},
{
test: /\.scss$/,
exclude: helpers.root('src', 'app'),
loader: ExtractTextPlugin.extract({
fallbackLoader: 'style-loader',
loader: ['sass-loader']
})
},
{
test: /\.scss$/,
include: helpers.root('src', 'app'),
loader: 'raw'
}
]
},
plugins: [
new webpack.ProvidePlugin({
jQuery: 'jquery',
$: 'jquery',
jquery: 'jquery',
'window.jQuery': 'jquery'
}),
new webpack.ContextReplacementPlugin(
// The (\\|\/) piece accounts for path separators in *nix and Windows
constants.CONTEXT_REPLACE_REGEX,
helpers.root('./src') // location of your src
),
new webpack.optimize.CommonsChunkPlugin({
name: ['app', 'vendor', 'polyfills']
}),
new HtmlWebpackPlugin({
favicon: 'src/favicon.ico',
template: 'src/public/index.html'
}),
new webpack.LoaderOptionsPlugin({
options: {
tslint: {
emitError: false,
failOnHint: false
}
}
})
]
};
{
"compilerOptions": {
"target": "es5",
"module": "es2015",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false,
"suppressImplicitAnyIndexErrors": true,
"allowSyntheticDefaultImports": true,
"baseUrl": "./src",
"outDir": "output",
"typeRoots": [
"node_modules/@types"
]
},
"awesomeTypescriptLoaderOptions": {
"useWebpackText": true,
"forkChecker": true,
"useCache": true
},
"angularCompilerOptions": {
"genDir": "src/compiled",
"skipMetadataEmit" : true
},
"exclude": [
"node_modules",
"config",
"src/compiled",
"e2e",
"src/**/*.spec.ts",
"src/app/main-ngc.ts",
"src/app/main.ts",
"typings",
"coverage",
"dist",
"report",
"src/tmp",
"src/public/components"
]
}
ModuleNotFoundError: Module not found: Error: Can't resolve '../../../../../app/pages/home/home.scss.shim' in '/Users/aeden/web/sas-angular-travel/frontend/src/compiled/src/app/pages/home'
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/lib/Compilation.js:232:38
at onDoneResolving (/Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/lib/NormalModuleFactory.js:40:20)
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/lib/NormalModuleFactory.js:117:20
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:726:13
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:52:16
at done (/Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:241:17)
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:44:16
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:723:17
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:167:37
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/lib/NormalModuleFactory.js:112:22
at onResolved (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/Resolver.js:70:11)
at loggingCallbackWrapper (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at afterInnerCallback (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/Resolver.js:138:10)
at loggingCallbackWrapper (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at Resolver.applyPluginsAsyncSeriesBailResult1 (/Users/aeden/web/sas-angular-travel/frontend/node_modules/tapable/lib/Tapable.js:108:46)
at innerCallback (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/Resolver.js:125:19)
at loggingCallbackWrapper (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/tapable/lib/Tapable.js:210:15
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:39:4
at loggingCallbackWrapper (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at afterInnerCallback (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/Resolver.js:138:10)
at loggingCallbackWrapper (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at Resolver.applyPluginsAsyncSeriesBailResult1 (/Users/aeden/web/sas-angular-travel/frontend/node_modules/tapable/lib/Tapable.js:108:46)
at innerCallback (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/Resolver.js:125:19)
at loggingCallbackWrapper (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/tapable/lib/Tapable.js:210:15
at innerCallback (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/Resolver.js:123:11)
at loggingCallbackWrapper (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/tapable/lib/Tapable.js:210:15
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:45:5
resolve '../../../../../app/pages/home/home.scss.shim' in '/Users/aeden/web/sas-angular-travel/frontend/src/compiled/src/app/pages/home'
using description file: /Users/aeden/web/sas-angular-travel/frontend/package.json (relative path: ./src/compiled/src/app/pages/home)
Field 'browser' doesn't contain a valid alias configuration
after using description file: /Users/aeden/web/sas-angular-travel/frontend/package.json (relative path: ./src/compiled/src/app/pages/home)
using description file: /Users/aeden/web/sas-angular-travel/frontend/package.json (relative path: ./src/app/pages/home/home.scss.shim)
as directory
/Users/aeden/web/sas-angular-travel/frontend/src/app/pages/home/home.scss.shim doesn't exist
no extension
Field 'browser' doesn't contain a valid alias configuration
/Users/aeden/web/sas-angular-travel/frontend/src/app/pages/home/home.scss.shim doesn't exist
.ts
Field 'browser' doesn't contain a valid alias configuration
/Users/aeden/web/sas-angular-travel/frontend/src/app/pages/home/home.scss.shim.ts doesn't exist
.js
Field 'browser' doesn't contain a valid alias configuration
/Users/aeden/web/sas-angular-travel/frontend/src/app/pages/home/home.scss.shim.js doesn't exist
.json
Field 'browser' doesn't contain a valid alias configuration
/Users/aeden/web/sas-angular-travel/frontend/src/app/pages/home/home.scss.shim.json doesn't exist
.css
Field 'browser' doesn't contain a valid alias configuration
/Users/aeden/web/sas-angular-travel/frontend/src/app/pages/home/home.scss.shim.css doesn't exist
.scss
Field 'browser' doesn't contain a valid alias configuration
/Users/aeden/web/sas-angular-travel/frontend/src/app/pages/home/home.scss.shim.scss doesn't exist
.html
Field 'browser' doesn't contain a valid alias configuration
/Users/aeden/web/sas-angular-travel/frontend/src/app/pages/home/home.scss.shim.html doesn't exist
41% building modules 266/467 modules 201 active ...ngular/common/src/directives/ng_if.js
/Users/aeden/web/sas-angular-travel/frontend/node_modules/tapable/lib/Tapable.js:123
if(!this._plugins[name] || this._plugins[name].length === 0) return callback(null, init);
^
TypeError: Cannot read property 'profile' of null
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/lib/Compilation.js:237:12
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/lib/NormalModuleFactory.js:74:13
at NormalModuleFactory.applyPluginsAsyncWaterfall (/Users/aeden/web/sas-angular-travel/frontend/node_modules/tapable/lib/Tapable.js:123:70)
at onDoneResolving (/Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/lib/NormalModuleFactory.js:49:11)
at onDoneResolving (/Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/lib/NormalModuleFactory.js:165:6)
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/lib/NormalModuleFactory.js:161:6
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:726:13
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:52:16
at async.forEachOf.async.eachOf (/Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:236:30)
at _parallel (/Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:717:9)
at Object.async.parallel (/Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:731:9)
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/lib/NormalModuleFactory.js:154:11
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:726:13
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:52:16
at done (/Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:246:17)
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:44:16
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:723:17
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/node_modules/async/lib/async.js:167:37
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/webpack/lib/NormalModuleFactory.js:113:7
at onResolved (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/Resolver.js:72:10)
at loggingCallbackWrapper (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at innerCallback (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/Resolver.js:122:22)
at loggingCallbackWrapper (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/tapable/lib/Tapable.js:210:15
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:38:22
at loggingCallbackWrapper (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at innerCallback (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/Resolver.js:122:22)
at loggingCallbackWrapper (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/createInnerCallback.js:31:19)
at /Users/aeden/web/sas-angular-travel/frontend/node_modules/tapable/lib/Tapable.js:210:15
at innerCallback (/Users/aeden/web/sas-angular-travel/frontend/node_modules/enhanced-resolve/lib/Resolver.js:122:22)