Skip to content

Commit ce84cd6

Browse files
committed
fix: ESM bundle for Node.js, #739
1 parent 7c4bd7e commit ce84cd6

File tree

6 files changed

+21
-20
lines changed

6 files changed

+21
-20
lines changed

benchmark/engines/liquid.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
const { createEngine } = require('./create-liquid')
22

3-
module.exports = createEngine(require('../../dist/liquid.node.cjs'))
3+
module.exports = createEngine(require('../../dist/liquid.cjs'))

bin/perf-diff.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#!/usr/bin/env bash
22

33
VERSION_LATEST=$(cat package.json | grep '"version":' | head -1 | awk -F'"' '{print $4}')
4-
FILE_LOCAL=dist/liquid.node.cjs.js
5-
FILE_LATEST=dist/liquid.node.cjs.$VERSION_LATEST.js
6-
URL_LATEST=https://unpkg.com/liquidjs@$VERSION_LATEST/dist/liquid.node.cjs.js
4+
FILE_LOCAL=dist/liquid.node.js
5+
FILE_LATEST=dist/liquid.node.$VERSION_LATEST.js
6+
URL_LATEST=https://unpkg.com/liquidjs@$VERSION_LATEST/dist/liquid.node.js
77

88
if [ ! -f "$FILE_LATEST" ]; then
99
curl $URL_LATEST > $FILE_LATEST

package.json

+10-5
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,16 @@
22
"name": "liquidjs",
33
"version": "10.16.4",
44
"description": "A simple, expressive and safe Shopify / Github Pages compatible template engine in pure JavaScript.",
5-
"main": "dist/liquid.node.cjs.js",
6-
"module": "dist/liquid.node.esm.js",
7-
"es2015": "dist/liquid.browser.esm.js",
5+
"main": "dist/liquid.node.js",
6+
"module": "dist/liquid.node.mjs",
7+
"es2015": "dist/liquid.browser.mjs",
88
"browser": {
9-
"./dist/liquid.node.cjs.js": "./dist/liquid.browser.umd.js",
10-
"./dist/liquid.node.esm.js": "./dist/liquid.browser.esm.js"
9+
"./dist/liquid.node.js": "./dist/liquid.browser.umd.js",
10+
"./dist/liquid.node.mjs": "./dist/liquid.browser.mjs"
11+
},
12+
"exports": {
13+
"import": "./dist/liquid.node.mjs",
14+
"require": "./dist/liquid.node.js"
1115
},
1216
"types": "dist/index.d.ts",
1317
"engines": {
@@ -19,6 +23,7 @@
1923
"test": "jest",
2024
"test:coverage": "jest --coverage src test/integration",
2125
"test:e2e": "jest test/e2e",
26+
"test:demo": "./test/demo/check.sh",
2227
"perf:diff": "bin/perf-diff.sh",
2328
"perf:engines": "cd benchmark && npm run engines",
2429
"version": "npm run build && npm test",

rollup.config.mjs

+4-4
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,14 @@ const browserStream = {
5151
'./streamed-emitter': '../build/streamed-emitter-browser'
5252
}
5353
const esmRequire = {
54-
include: './src/fs/node.ts',
54+
include: './src/fs/fs-impl.ts',
5555
delimiters: ['', ''],
5656
'./node-require': '../build/node-require.mjs'
5757
}
5858

5959
const nodeCjs = {
6060
output: [{
61-
file: 'dist/liquid.node.cjs.js',
61+
file: 'dist/liquid.node.js',
6262
format: 'cjs',
6363
banner
6464
}],
@@ -70,7 +70,7 @@ const nodeCjs = {
7070

7171
const nodeEsm = {
7272
output: [{
73-
file: 'dist/liquid.node.esm.js',
73+
file: 'dist/liquid.node.mjs',
7474
format: 'esm',
7575
banner
7676
}],
@@ -86,7 +86,7 @@ const nodeEsm = {
8686

8787
const browserEsm = {
8888
output: [{
89-
file: 'dist/liquid.browser.esm.js',
89+
file: 'dist/liquid.browser.mjs',
9090
format: 'esm',
9191
banner
9292
}],

src/build/node-require.mjs

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import { createRequire } from 'module'
22

33
export function requireResolve (file) {
4-
/**
5-
* createRequire() can throw,
6-
* when import.meta.url not begin with "file://".
7-
*/
8-
const require = createRequire(import.meta.url)
4+
const require = createRequire(process.cwd() + '/')
95
return require.resolve(file)
106
}

test/e2e/render-to-node-stream.spec.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { drainStream } from '../stub/stream'
33

44
describe('.renderToNodeStream()', function () {
55
it('should render to stream in Node.js', done => {
6-
const cjs = require('../../dist/liquid.node.cjs')
6+
const cjs = require('../../dist/liquid.node')
77
const engine = new cjs.Liquid()
88
const tpl = engine.parseFileSync(resolve(__dirname, '../stub/root/foo.html'))
99
const stream = engine.renderToNodeStream(tpl)
@@ -28,7 +28,7 @@ describe('.renderToNodeStream()', function () {
2828

2929
describe('.renderFileToNodeStream()', function () {
3030
it('should render to stream in Node.js', async () => {
31-
const cjs = require('../../dist/liquid.node.cjs')
31+
const cjs = require('../../dist/liquid.node')
3232
const engine = new cjs.Liquid({
3333
root: resolve(__dirname, '../stub/root/')
3434
})

0 commit comments

Comments
 (0)