Skip to content
This repository was archived by the owner on Sep 24, 2020. It is now read-only.

Commit 0c0fbd6

Browse files
committed
solve conflicts
1 parent 8e507bf commit 0c0fbd6

File tree

3 files changed

+115
-2
lines changed

3 files changed

+115
-2
lines changed

template/.npmignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# IntelliJ project files
2+
.idea/
3+
src/
4+
config/
5+
environment/
6+
karma.*.js
7+
webpack.*.js
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
const glob = require('glob'),
2+
path = require('path'),
3+
CompressionPlugin = require('compression-webpack-plugin'),
4+
ExtractTextPlugin = require('extract-text-webpack-plugin'),
5+
PurifyCSSPlugin = require('purifycss-webpack'),
6+
autoprefixer = require('autoprefixer'),
7+
webpackConfig = require('./webpack.config.base'),
8+
helpers = require('./helpers'),
9+
DefinePlugin = require('webpack/lib/DefinePlugin'),
10+
env = require('../environment/prod.env');
11+
12+
const extractSass = new ExtractTextPlugin({
13+
filename: 'css/[name].[contenthash].css',
14+
disable: process.env.NODE_ENV === 'development'
15+
});
16+
17+
const purifyCss = new PurifyCSSPlugin({
18+
paths: glob.sync(path.join(__dirname, '../src/**/*.html')),
19+
purifyOptions: {
20+
info: true,
21+
whitelist: []
22+
}
23+
});
24+
25+
webpackConfig.output = {
26+
path: helpers.root('/dist'),
27+
filename: 'index.js',
28+
library: '[name]',
29+
libraryTarget: 'umd',
30+
umdNamedDefine: true
31+
};
32+
33+
webpackConfig.externals = {
34+
'axios': 'axios',
35+
'vue': 'vue',
36+
'vue-class-component': 'vue-class-component',
37+
'vue-property-decorator': 'vue-property-decorator',
38+
'vue-router': 'vue-router'
39+
};
40+
41+
webpackConfig.module.rules = [...webpackConfig.module.rules,
42+
{
43+
test: /\.scss$/,
44+
use: extractSass.extract({
45+
use: [{
46+
loader: 'css-loader',
47+
options: {
48+
minimize: true,
49+
sourceMap: true,
50+
importLoaders: 2
51+
}
52+
},
53+
{
54+
loader: 'postcss-loader',
55+
options: {
56+
plugins: () => [autoprefixer]
57+
}
58+
},
59+
{
60+
loader: 'sass-loader',
61+
options: {
62+
outputStyle: 'expanded',
63+
sourceMap: true,
64+
sourceMapContents: true
65+
}
66+
}
67+
],
68+
// use style-loader in development
69+
fallback: 'style-loader'
70+
})
71+
},
72+
{
73+
test: /\.(jpg|png|gif)$/,
74+
loader: 'file-loader?name=assets/img/[name].[ext]'
75+
},
76+
{
77+
test: /\.(eot|svg|ttf|woff|woff2)$/,
78+
loader: 'file-loader?name=fonts/[name].[ext]'
79+
}
80+
];
81+
82+
// ensure ts lint fails the build
83+
webpackConfig.module.rules[0].options = {
84+
failOnHint: true
85+
};
86+
87+
webpackConfig.plugins = [...webpackConfig.plugins,
88+
extractSass,
89+
purifyCss,
90+
new CompressionPlugin({
91+
asset: '[path].gz[query]',
92+
test: /\.min\.js$/
93+
}),
94+
new DefinePlugin({
95+
'process.env': env
96+
})
97+
];
98+
99+
module.exports = webpackConfig;

template/package.json

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,37 @@
44
"version": "1.0.0",
55
"author": "{{ author }}",
66
"private": true,
7+
"main": "./dist/index.js",
8+
"types": "./dist/index.d.ts",
79
"engines": {
810
"node": ">=6",
911
"npm": ">=3"
1012
},
1113
"scripts": {
1214
"build": "cross-env NODE_ENV=production npm run clean && npm run test && npm run compile",
15+
"module": "cross-env NODE_ENV=production npm run clean && npm run test && npm run compile:module",
16+
"build:parts": "npm run sass && npm run compile",
1317
"ci:teamcity": "karma --env=tc start config/karma.coverage.js && npm run coverage:remap",
1418
"ci:jenkins": "karma --env=jk start config/karma.coverage.js && npm run coverage:remap",
1519
"clean": "rimraf dist && rimraf coverage",
1620
"compile": "webpack --config config/webpack.config.prod.js",
21+
"compile:module": "webpack --config config/webpack.config.module.js",
22+
"prepublishOnly": "npm run module",
23+
"node-module": "webpack --config config/webpack.config.module.js",
1724
"coverage": "npm run coverage:run && npm run coverage:remap && npm run coverage:open",
1825
"coverage:open": "opn coverage/html-ts/index.html",
1926
"coverage:remap": "remap-istanbul -i coverage/json/coverage-final.json -o coverage/html-ts -t html",
2027
"coverage:run": "cross-env NODE_ENV=development karma start config/karma.coverage.js",
2128
"dev": "webpack-dev-server --config config/webpack.config.dev.js --hot --inline",
2229
"lint": "tslint src/**/*.ts",
23-
"serve": "http-server dist/ -g -o",
30+
"serve": "superstatic dist --port 8080 --host 0.0.0.0 --config superstatic.json",
2431
"test": "cross-env NODE_ENV=development karma start config/karma.unit.js",
2532
"test:debug": "cross-env NODE_ENV=development karma start config/karma.debug.js",
2633
"test:watch": "cross-env NODE_ENV=development karma start config/karma.unit.js --singleRun=false --auto-watch"
2734
},
2835
"dependencies": {
2936
"axios": "~0.17.1",
37+
"superstatic": "^5.0.1",
3038
"uiv": "~0.17.0",
3139
"vue": "~2.5.13",
3240
"vue-class-component": "~6.1.2",
@@ -52,7 +60,6 @@
5260
"favicons-webpack-plugin": "0.0.7",
5361
"file-loader": "~1.1.6",
5462
"html-webpack-plugin": "~2.30.1",
55-
"http-server": "~0.11.1",
5663
"istanbul-instrumenter-loader": "~3.0.0",
5764
"json-loader": "~0.5.7",
5865
"karma": "~2.0.0",

0 commit comments

Comments
 (0)