mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
Fix .json import issue (#944)
* Fix .json import error This is a regression we've added by #926 (tree-shaking-support) * Add a test case.
This commit is contained in:
parent
579098663c
commit
ec2c8c6784
|
@ -16,7 +16,7 @@ module.exports = function (content, sourceMap) {
|
|||
}
|
||||
|
||||
if (query.transform) {
|
||||
const transformed = query.transform({ content, sourceMap })
|
||||
const transformed = query.transform({ content, sourceMap, interpolatedName })
|
||||
return emit(transformed.content, transformed.sourceMap)
|
||||
}
|
||||
|
||||
|
|
|
@ -149,7 +149,12 @@ export default async function createCompiler (dir, { dev = false, quiet = false
|
|||
// By default, our babel config does not transpile ES2015 module syntax because
|
||||
// webpack knows how to handle them. (That's how it can do tree-shaking)
|
||||
// But Node.js doesn't know how to handle them. So, we have to transpile them here.
|
||||
transform ({ content, sourceMap }) {
|
||||
transform ({ content, sourceMap, interpolatedName }) {
|
||||
// Only handle .js files
|
||||
if (!(/\.js$/.test(interpolatedName))) {
|
||||
return { content, sourceMap }
|
||||
}
|
||||
|
||||
const transpiled = babelCore.transform(content, {
|
||||
presets: ['es2015'],
|
||||
sourceMaps: dev ? 'both' : false,
|
||||
|
|
3
test/integration/basic/lib/data.json
Normal file
3
test/integration/basic/lib/data.json
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"name": "Zeit"
|
||||
}
|
5
test/integration/basic/pages/json.js
Normal file
5
test/integration/basic/pages/json.js
Normal file
|
@ -0,0 +1,5 @@
|
|||
import data from '../lib/data'
|
||||
|
||||
export default () => (
|
||||
<div>{data.name}</div>
|
||||
)
|
|
@ -61,6 +61,11 @@ export default function ({ app }, suiteName, render) {
|
|||
expect($('pre').text().includes(expectedErrorMessage)).toBeTruthy()
|
||||
})
|
||||
|
||||
test('allows to import .json files', async () => {
|
||||
const html = await render('/json')
|
||||
expect(html.includes('Zeit')).toBeTruthy()
|
||||
})
|
||||
|
||||
test('error', async () => {
|
||||
const $ = await get$('/error')
|
||||
expect($('pre').text()).toMatch(/This is an expected error/)
|
||||
|
|
Loading…
Reference in a new issue