2013-02-14 00:00:07 +08:00
|
|
|
var should = require("should");
|
|
|
|
|
|
|
|
var path = require("path");
|
|
|
|
var webpack = require("../lib/webpack");
|
|
|
|
|
|
|
|
describe("NodeTemplatePlugin", function() {
|
|
|
|
|
|
|
|
it("should compile and run a simple module", function(done) {
|
|
|
|
webpack({
|
|
|
|
context: path.join(__dirname, "fixtures", "nodetest"),
|
|
|
|
target: "node",
|
|
|
|
output: {
|
|
|
|
path: path.join(__dirname, "js"),
|
|
|
|
filename: "result.js",
|
2013-06-28 20:20:11 +08:00
|
|
|
chunkFilename: "[hash].result.[id].js",
|
|
|
|
library: "abc",
|
|
|
|
libraryTarget: "commonjs",
|
2013-02-14 00:00:07 +08:00
|
|
|
},
|
|
|
|
entry: "./entry",
|
2013-12-18 06:21:49 +08:00
|
|
|
plugins: [
|
|
|
|
new webpack.optimize.UglifyJsPlugin()
|
|
|
|
]
|
2013-02-14 00:00:07 +08:00
|
|
|
}, function(err, stats) {
|
|
|
|
if(err) return err;
|
2017-01-02 08:44:24 +08:00
|
|
|
stats.hasErrors().should.be.not.ok();
|
|
|
|
stats.hasWarnings().should.be.not.ok();
|
2013-06-28 20:20:11 +08:00
|
|
|
var result = require("./js/result").abc;
|
2013-02-14 00:00:07 +08:00
|
|
|
result.nextTick.should.be.equal(process.nextTick);
|
|
|
|
result.fs.should.be.equal(require("fs"));
|
|
|
|
result.loadChunk(456, function(chunk) {
|
|
|
|
chunk.should.be.eql(123);
|
|
|
|
result.loadChunk(567, function(chunk) {
|
2015-08-09 18:42:43 +08:00
|
|
|
chunk.should.be.eql({
|
|
|
|
a: 1
|
|
|
|
});
|
2013-02-14 00:00:07 +08:00
|
|
|
done();
|
|
|
|
});
|
2013-06-28 20:20:11 +08:00
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it("should compile and run a simple module in single mode", function(done) {
|
|
|
|
webpack({
|
|
|
|
context: path.join(__dirname, "fixtures", "nodetest"),
|
|
|
|
target: "node",
|
|
|
|
output: {
|
|
|
|
path: path.join(__dirname, "js"),
|
|
|
|
filename: "result2.js",
|
|
|
|
chunkFilename: "[hash].result2.[id].js",
|
|
|
|
library: "def",
|
|
|
|
libraryTarget: "umd",
|
2016-02-27 06:50:04 +08:00
|
|
|
auxiliaryComment: "test"
|
2013-06-28 20:20:11 +08:00
|
|
|
},
|
|
|
|
entry: "./entry",
|
2013-12-18 06:21:49 +08:00
|
|
|
plugins: [
|
2015-08-09 18:42:43 +08:00
|
|
|
new webpack.optimize.LimitChunkCountPlugin({
|
|
|
|
maxChunks: 1
|
|
|
|
}),
|
2013-12-18 06:21:49 +08:00
|
|
|
new webpack.optimize.UglifyJsPlugin()
|
|
|
|
]
|
2013-06-28 20:20:11 +08:00
|
|
|
}, function(err, stats) {
|
|
|
|
if(err) return err;
|
2017-01-02 08:44:24 +08:00
|
|
|
stats.hasErrors().should.be.not.ok();
|
2013-06-28 20:20:11 +08:00
|
|
|
var result = require("./js/result2");
|
|
|
|
result.nextTick.should.be.equal(process.nextTick);
|
|
|
|
result.fs.should.be.equal(require("fs"));
|
|
|
|
var sameTick = true;
|
|
|
|
result.loadChunk(456, function(chunk) {
|
|
|
|
chunk.should.be.eql(123);
|
|
|
|
sameTick.should.be.eql(true);
|
|
|
|
result.loadChunk(567, function(chunk) {
|
2015-08-09 18:42:43 +08:00
|
|
|
chunk.should.be.eql({
|
|
|
|
a: 1
|
|
|
|
});
|
2013-06-28 20:20:11 +08:00
|
|
|
done();
|
|
|
|
});
|
2013-02-14 00:00:07 +08:00
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|