Skip to content
This repository has been archived by the owner on Mar 6, 2024. It is now read-only.

Commit

Permalink
fake loader context is no longer prototypal, added tslint example
Browse files Browse the repository at this point in the history
  • Loading branch information
amireh committed Mar 30, 2016
1 parent d59861c commit b3086ec
Show file tree
Hide file tree
Showing 14 changed files with 316 additions and 108 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
*.gnumeric
/node_modules
node_modules
.happypack
/examples/**/dist
/tmp
Expand Down
24 changes: 20 additions & 4 deletions examples/build-all.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ if [ ! -d examples ]; then
exit 1
fi

ROOT=$(pwd)
WEBPACK_BIN="${ROOT}/node_modules/.bin/webpack"

function run_task {
task=$@
echo -e "\n[$task] STARTING $(date)"
Expand All @@ -23,6 +26,10 @@ function run_task {
echo -e "[$task] FINISHED $(date)\n"
}

function install_packages {
(cd $@; npm install)
}

function single_loader {
[ -d examples/single-loader/dist ] && rm -r examples/single-loader/dist

Expand All @@ -43,18 +50,27 @@ function multi_loader {

function sass_loader {
[ -d examples/sass-loader/dist ] && rm -r examples/sass-loader/dist
[ -f examples/sass-loader/package.json ] && install_packages examples/sass-loader

./node_modules/.bin/webpack \
--bail \
--config examples/sass-loader/webpack.config.js &&
(cd examples/sass-loader; $ROOT/node_modules/.bin/webpack --bail) &&
grep "background-color: yellow" ./examples/sass-loader/dist/main.js
}

function tslint_loader {
[ -d examples/tslint-loader/dist ] && rm -r examples/tslint-loader/dist
[ -f examples/tslint-loader/package.json ] && install_packages examples/tslint-loader

(cd examples/tslint-loader; $WEBPACK_BIN --bail) | grep "forbidden var keyword"
}

echo "Testing HappyPack using a single loader."
run_task single_loader

echo "Testing HappyPack using multiple loaders."
run_task multi_loader

echo "Testing HappyPack using sass + css + style loaders."
run_task sass_loader
run_task sass_loader

echo "Testing HappyPack using ts-linter (typescript linter)"
run_task tslint_loader
15 changes: 15 additions & 0 deletions examples/sass-loader/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "happypack-examples__sass-loader",
"version": "1.0.0",
"description": "",
"main": "index.js",
"author": "",
"license": "ISC",
"dependencies": {
"autoprefixer-loader": "^3.2.0",
"css-loader": "^0.23.1",
"node-sass": "^3.4.2",
"sass-loader": "^3.2.0",
"style-loader": "^0.13.0"
}
}
2 changes: 1 addition & 1 deletion examples/sass-loader/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ module.exports = {

plugins: [
new HappyPack({
loaders: [ 'style!css!sass' ],
loaders: [ 'style!css?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!autoprefixer?browsers=last 2 version!sass?outputStyle=expanded&sourceMap&' ],
cache: false,
threads: 2
})
Expand Down
2 changes: 1 addition & 1 deletion examples/sass-loader/webpack.raw.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ module.exports = {
loaders: [
{
test: /\.scss$/,
loader: 'style!css!sass',
loader: 'style!css?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!autoprefixer?browsers=last 2 version!sass?outputStyle=expanded&sourceMap&',
}
]
}
Expand Down
11 changes: 11 additions & 0 deletions examples/tslint-loader/lib/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
class Greeter {
constructor(public greeting: string) { }
greet() {
return "<h1>" + this.greeting + "</h1>";
}
};

var greeter = new Greeter("Hello, world!");
const foobar = 'zxc';

document.body.innerHTML = greeter.greet();
14 changes: 14 additions & 0 deletions examples/tslint-loader/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"name": "happypack-examples__tslint-loader",
"version": "1.0.0",
"description": "",
"main": "index.js",
"author": "",
"license": "ISC",
"devDependencies": {
"ts-loader": "^0.8.1",
"tslint": "^3.6.0",
"tslint-loader": "^2.1.3",
"typescript": "^1.8.9"
}
}
9 changes: 9 additions & 0 deletions examples/tslint-loader/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"compilerOptions": {
"target": "es5",
"sourceMap": true
},
"exclude": [
"node_modules"
]
}
57 changes: 57 additions & 0 deletions examples/tslint-loader/tslint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{
"rules": {
"class-name": true,
"comment-format": [
true,
"check-space"
],
"indent": [
true,
"spaces"
],
"no-duplicate-variable": true,
"no-eval": true,
"no-internal-module": true,
"no-trailing-whitespace": true,
"no-var-keyword": true,
"one-line": [
true,
"check-open-brace",
"check-whitespace"
],
"quotemark": [
true,
"double"
],
"semicolon": [
true,
"always"
],
"triple-equals": [
true,
"allow-null-check"
],
"typedef-whitespace": [
true,
{
"call-signature": "nospace",
"index-signature": "nospace",
"parameter": "nospace",
"property-declaration": "nospace",
"variable-declaration": "nospace"
}
],
"variable-name": [
true,
"ban-keywords"
],
"whitespace": [
true,
"check-branch",
"check-decl",
"check-operator",
"check-separator",
"check-type"
]
}
}
90 changes: 90 additions & 0 deletions examples/tslint-loader/webpack.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
var path = require('path');
var HappyPack = require('../../');

module.exports = {
entry: path.resolve(__dirname, 'lib/index.ts'),

output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].js'
},

plugins: [
new HappyPack({
cache: false,
loaders: [ 'tslint' ],
threads: 2
})
],

module: {
preLoaders: [
{
test: /\.ts$/,
loader: path.resolve(__dirname, '../../loader'),
include: [ path.resolve(__dirname, 'lib') ]
}
],

loaders: [{ test: /\.ts$/, loader: 'ts' }]
}
};

// module.exports = {
// entry: path.resolve(__dirname, 'lib/index.ts'),

// output: {
// path: path.resolve(__dirname, 'dist'),
// filename: '[name].js'
// },

// module: {
// // preLoaders: [{ test: /\.ts$/, loader: 'tslint' }],
// // postLoaders: [{ test: /\.ts$/, loader: 'tslint' }],
// loaders: [{ test: /\.ts$/, loader: 'ts!tslint' }]
// },

// // tslint: {
// // // configuration: {
// // // rules: {
// // // quotemark: [true, "double"]
// // // }
// // // },

// // // tslint errors are displayed by default as warnings
// // // set emitErrors to true to display them as errors
// // emitErrors: true,

// // // tslint does not interrupt the compilation by default
// // // if you want any file with tslint errors to fail
// // // set failOnHint to true
// // failOnHint: true,

// // // name of your formatter (optional)
// // // formatter: "yourformatter",

// // // // path to directory containing formatter (optional)
// // // formattersDirectory: "node_modules/tslint-loader/formatters/",

// // // These options are useful if you want to save output to files
// // // for your continuous integration server
// // fileOutput: {
// // // The directory where each file's report is saved
// // dir: path.resolve(__dirname, "lint-output"),

// // // The extension to use for each report's filename. Defaults to "txt"
// // ext: "txt",

// // // If true, all files are removed from the report directory at the beginning of run
// // clean: true,

// // // A string to include at the top of every report file.
// // // Useful for some report formats.
// // header: "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<checkstyle version=\"5.7\">",

// // // A string to include at the bottom of every report file.
// // // Useful for some report formats.
// // footer: "</checkstyle>"
// // }
// // }
// };
Loading

0 comments on commit b3086ec

Please sign in to comment.