Skip to content

Commit d9f9be3

Browse files
committed
Updated config for better sass/typescript support and sensible defaults
1 parent 82246bc commit d9f9be3

10 files changed

+42
-15
lines changed

.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
.DS_Store
22
node_modules
3-
public/bundle.*
43
package-lock.json
54
yarn.lock
65
.idea/

.storybook/addons.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
import '@storybook/addon-actions/register';
22
import '@storybook/addon-links/register';
3+
import '@storybook/addon-viewport/register';
4+
import '@storybook/addon-knobs/register';

.storybook/presets.js

+10-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,10 @@
1-
module.exports = ["@storybook/preset-typescript","@storybook/preset-scss"];
1+
module.exports = [
2+
"@storybook/preset-typescript",
3+
{
4+
name: '@storybook/preset-scss',
5+
options: {
6+
cssLoaderOptions: {
7+
sourceMap: true
8+
}
9+
}
10+
}];

.storybook/webpack.config.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const merge = require('webpack-merge');
22
const {CheckerPlugin} = require('awesome-typescript-loader');
3+
const path = require('path');
34

45

56
module.exports = ({config, mode}) => {
@@ -18,7 +19,8 @@ module.exports = ({config, mode}) => {
1819
]
1920
},
2021
});
22+
mergedConfig.resolve.alias['@styles'] = path.resolve(__dirname, '../src/styles/');
2123
mergedConfig.plugins.push(new CheckerPlugin());
22-
// console.dir(mergedConfig, {depth: null});
24+
//console.dir(mergedConfig, {depth: null});
2325
return mergedConfig;
2426
};

package.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
"@babel/preset-typescript": "^7.6.0",
88
"@pyoner/svelte-types": "^3.4.4-2",
99
"@storybook/addon-actions": "^5.2.4",
10+
"@storybook/addon-knobs": "^5.2.5",
1011
"@storybook/addon-links": "^5.2.4",
12+
"@storybook/addon-viewport": "^5.2.5",
1113
"@storybook/addons": "^5.2.4",
1214
"@storybook/preset-scss": "^1.0.2",
1315
"@storybook/preset-typescript": "^1.1.0",
@@ -24,7 +26,7 @@
2426
"style-loader": "^0.23.1",
2527
"svelte": "^3.12.1",
2628
"svelte-loader": "^2.13.6",
27-
"svelte-preprocess": "^3.1.2",
29+
"svelte-preprocess": "^3.2.5",
2830
"ts-loader": "^6.2.1",
2931
"typescript": "^3.6.4",
3032
"webpack": "^4.30.0",
@@ -36,5 +38,7 @@
3638
"build": "webpack --config webpack.prod.js",
3739
"dev": "webpack-dev-server --open --config webpack.dev.js",
3840
"storybook": "start-storybook -p 4061"
41+
},
42+
"dependencies": {
3943
}
4044
}

src/App.svelte

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script>
22
import Button from "./components/button/Button.svelte";
3+
import Button2 from "./components/button/Button2.svelte";
34
45
export let name;
56
</script>
@@ -12,4 +13,5 @@
1213

1314
<h1>Hello {name}!</h1>
1415
<Button text="Hello"/>
16+
<Button2 text="Hello"/>
1517

tsconfig.json

+9-4
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
11
{
22
"compilerOptions": {
3+
"extendedDiagnostics": true,
34
"outDir": "build/lib",
4-
"module": "commonjs",
5-
"target": "es5",
5+
"module": "es6",
6+
"target": "es6",
67
"lib": ["es5", "es6", "es7", "es2017", "dom"],
78
"sourceMap": true,
89
"allowJs": false,
910
"types": ["@pyoner/svelte-types"],
1011
"moduleResolution": "node",
1112
"rootDirs": ["src", "stories"],
1213
"baseUrl": "src",
14+
"paths": {
15+
"@styles/*": ["styles/*"],
16+
"@common/*": ["common/*"]
17+
},
1318
"forceConsistentCasingInFileNames": true,
1419
"noImplicitReturns": true,
1520
"noImplicitThis": true,
1621
"noImplicitAny": false,
1722
"strict": true,
1823
"strictNullChecks": true,
1924
"suppressImplicitAnyIndexErrors": true,
20-
"noUnusedLocals": true,
25+
"noUnusedLocals": false,
2126
"allowSyntheticDefaultImports": true,
2227
"esModuleInterop": true,
2328
"experimentalDecorators": true,
@@ -28,5 +33,5 @@
2833
"babelCore": "@babel/core"
2934
},
3035
"include": ["src/**/*"],
31-
"exclude": ["node_modules", "build", "scripts"]
36+
"exclude": ["node_modules", "build"]
3237
}

webpack.common.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@ module.exports = {
1010
},
1111
resolve: {
1212
alias: {
13-
svelte: path.resolve('node_modules', 'svelte')
13+
svelte: path.resolve('node_modules', 'svelte'),
14+
'@styles': path.resolve(__dirname, 'src/styles/'),
1415
},
15-
extensions: ['.mjs', '.ts', '.tsx', '.js', '.svelte'],
16-
mainFields: ['svelte', 'browser', 'module', 'main']
16+
extensions: ['.mjs', '.ts', '.tsx', '.js', '.svelte', 'scss', 'css'],
17+
mainFields: ['svelte', 'browser', 'module', 'main'],
18+
modules: [path.resolve(__dirname, 'src'), 'node_modules']
1719
},
1820
output: {
1921
path: path.resolve(__dirname, 'build'),

webpack.dev.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,15 @@ module.exports = merge.smart(common, {
1212
module: {
1313
rules: [
1414
{
15-
test: /\.css$/,
15+
test: /\.(scss|sass|css)$/,
1616
use: [
1717
/**
1818
* MiniCssExtractPlugin doesn't support HMR.
1919
* For developing, use 'style-loader' instead.
2020
* */
2121
'style-loader',
22-
'css-loader',
22+
{ loader: 'css-loader', options: { sourceMap: true } },
23+
'sass-loader'
2324
]
2425
}
2526
]

webpack.prod.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,15 @@ let config = merge.smart(common, {
2424
}
2525
},
2626
{
27-
test: /\.css$/,
27+
test: /\.(scss|sass|css)$/,
2828
use: [
2929
/**
3030
* MiniCssExtractPlugin doesn't support HMR.
3131
* For developing, use 'style-loader' instead.
3232
* */
3333
MiniCssExtractPlugin.loader,
34-
'css-loader',
34+
{ loader: 'css-loader', options: { sourceMap: true } },
35+
'sass-loader'
3536
]
3637
}
3738
]

0 commit comments

Comments
 (0)