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

Commit 5365764

Browse files
committed
Initial commit
1 parent d1ae3c6 commit 5365764

File tree

8 files changed

+232
-2
lines changed

8 files changed

+232
-2
lines changed

.editorconfig

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# editorconfig.org
2+
root = true
3+
4+
[*]
5+
indent_style = tab
6+
end_of_line = lf
7+
charset = utf-8
8+
indent_size = 2
9+
trim_trailing_whitespace = true
10+
insert_final_newline = true
11+
12+
[*.{json,yml,md}]
13+
indent_style = space
14+
indent_size = 2

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
node_modules/
2+
Changelog.md

README.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,17 @@
1-
# vue-webpack-loaders
2-
Basic Webpack loaders for Vue apps
1+
# Basic Webpack loaders for Vue apps
2+
3+
Basic Vue Webpack loaders:
4+
5+
* `vue-loader`
6+
* `babel-loader`
7+
* `css-loader` and `style-loader`
8+
* `json-loader`
9+
* `url-loader` for all other files
10+
11+
Based on [vue-cli](https://github.com/vuejs/vue-cli)
12+
13+
## Installation
14+
15+
```
16+
npm install --save-dev vue-webpack-loaders
17+
```

index.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
// Based on vue-cli
2+
// https://github.com/vuejs/vue-cli
3+
var vueLoaderConfig = require('./vue-loader.conf')
4+
5+
module.exports = [
6+
{
7+
test: /\.vue$/,
8+
exclude: /node_modules/,
9+
loader: 'vue-loader',
10+
options: vueLoaderConfig
11+
},
12+
{
13+
test: /\.js$/,
14+
exclude: /node_modules/,
15+
loader: 'babel-loader',
16+
options: {
17+
"presets": [
18+
["env", { "modules": false }],
19+
"stage-2"
20+
],
21+
"plugins": ["transform-runtime"],
22+
"comments": false,
23+
"env": {
24+
"test": {
25+
"presets": ["env", "stage-2"],
26+
"plugins": [ "istanbul" ]
27+
}
28+
}
29+
},
30+
query: {
31+
babelrc: false,
32+
cacheDirectory: true,
33+
}
34+
},
35+
{
36+
test: /\.css$/,
37+
loader: 'style-loader!css-loader'
38+
},
39+
40+
{
41+
test: /\.json$/,
42+
loader: 'json-loader'
43+
},
44+
45+
{
46+
exclude: [ /\.html$/, /\.js$/, /\.css$/, /\.vue$/, /\.json$/ ],
47+
loader: 'url-loader',
48+
query: {
49+
limit: 10000,
50+
name: 'static/media/[name].[hash:8].[ext]'
51+
}
52+
}
53+
54+
]

index.spec.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
const loaders = require('./index')
2+
var expect = require("chai").expect
3+
4+
describe('tests', () => {
5+
it('expose array with all loaders', () => {
6+
expect(Array.isArray(loaders)).to.be.true
7+
})
8+
9+
it('be able to require loaders', () => {
10+
expect(() => require('babel-loader')).to.not.throw()
11+
expect(() => require('css-loader')).to.not.throw()
12+
expect(() => require('style-loader')).to.not.throw()
13+
expect(() => require('json-loader')).to.not.throw()
14+
expect(() => require('url-loader')).to.not.throw()
15+
expect(() => require('vue-loader')).to.not.throw()
16+
})
17+
})
18+

package.json

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
{
2+
"name": "vue-webpack-loaders",
3+
"version": "1.0.0",
4+
"description": "Basic Webpack loaders for Vue apps",
5+
"main": "index.js",
6+
"files": [
7+
"index.js"
8+
],
9+
"scripts": {
10+
"test": "mocha -c index.spec.js"
11+
},
12+
"repository": {
13+
"type": "git",
14+
"url": "https://github.com/vue-styleguidist/vue-webpack-loaders.git"
15+
},
16+
"engines": {
17+
"node": ">= 4.0.0",
18+
"npm": ">= 3.0.0"
19+
},
20+
"author": "Rafael Escala",
21+
"license": "MIT",
22+
"bugs": {
23+
"url": "https://github.com/vue-styleguidist/vue-webpack-loaders/issues"
24+
},
25+
"homepage": "https://github.com/vue-styleguidist/vue-webpack-loaders#readme",
26+
"devDependencies": {
27+
"autoprefixer": "^7.1.1",
28+
"babel-core": "^6.25.0",
29+
"babel-loader": "^7.0.0",
30+
"babel-plugin-transform-runtime": "^6.23.0",
31+
"babel-preset-env": "^1.5.2",
32+
"babel-preset-stage-2": "^6.24.1",
33+
"babel-register": "^6.24.1",
34+
"css-loader": "^0.28.4",
35+
"extract-text-webpack-plugin": "^2.1.2",
36+
"file-loader": "^0.11.2",
37+
"html-webpack-plugin": "^2.28.0",
38+
"json-loader": "^0.5.4",
39+
"postcss-loader": "^2.0.5",
40+
"style-loader": "^0.18.2",
41+
"url-loader": "^0.5.8",
42+
"vue-loader": "^12.2.1",
43+
"vue-style-loader": "^3.0.1",
44+
"vue-template-compiler": "^2.3.4",
45+
"webpack": "^2.6.1"
46+
},
47+
"dependencies": {
48+
"chai": "^4.0.2",
49+
"mocha": "^3.4.2",
50+
"vue": "^2.3.4"
51+
},
52+
"peerDependencies": {
53+
"webpack": "1 || 2"
54+
},
55+
"browserslist": [
56+
"> 1%",
57+
"last 2 versions",
58+
"not ie <= 8"
59+
],
60+
"keywords": [
61+
"webpack",
62+
"loader",
63+
"app",
64+
"application",
65+
"javascript",
66+
"vue",
67+
"js",
68+
"babel",
69+
"scss",
70+
"sass",
71+
"css",
72+
"json",
73+
"url",
74+
"less"
75+
]
76+
}

utils.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
exports.cssLoaders = function (options) {
2+
options = options || {}
3+
4+
var cssLoader = {
5+
loader: 'css-loader',
6+
options: {
7+
minimize: process.env.NODE_ENV === 'production',
8+
sourceMap: options.sourceMap
9+
}
10+
}
11+
12+
// generate loader string to be used with extract text plugin
13+
function generateLoaders (loader, loaderOptions) {
14+
var loaders = [cssLoader]
15+
if (loader) {
16+
loaders.push({
17+
loader: loader + '-loader',
18+
options: Object.assign({}, loaderOptions, {
19+
sourceMap: options.sourceMap
20+
})
21+
})
22+
}
23+
24+
// Extract CSS when that option is specified
25+
// (which is the case during production build)
26+
if (options.extract) {
27+
return ExtractTextPlugin.extract({
28+
use: loaders,
29+
fallback: 'vue-style-loader'
30+
})
31+
} else {
32+
return ['vue-style-loader'].concat(loaders)
33+
}
34+
}
35+
36+
// https://vue-loader.vuejs.org/en/configurations/extract-css.html
37+
return {
38+
css: generateLoaders(),
39+
postcss: generateLoaders(),
40+
less: generateLoaders('less'),
41+
sass: generateLoaders('sass', { indentedSyntax: true }),
42+
scss: generateLoaders('sass'),
43+
stylus: generateLoaders('stylus'),
44+
styl: generateLoaders('stylus')
45+
}
46+
}

vue-loader.conf.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
var utils = require('./utils')
2+
3+
module.exports = {
4+
loaders: utils.cssLoaders()
5+
}

0 commit comments

Comments
 (0)