Skip to content

Commit a2ea05e

Browse files
filipesilvahansl
authored andcommitted
fix(scripts): allow using same lib inside app (angular#3814)
Fix angular#2141
1 parent f4b5773 commit a2ea05e

File tree

2 files changed

+11
-12
lines changed

2 files changed

+11
-12
lines changed

packages/angular-cli/models/webpack-build-common.ts

+5-10
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,11 @@ export function getWebpackCommonConfig(
5959
if (appConfig.scripts.length > 0) {
6060
const globalScripts = extraEntryParser(appConfig.scripts, appRoot, 'scripts');
6161

62-
// add script entry points
63-
globalScripts.forEach(script =>
64-
entryPoints[script.entry]
65-
? entryPoints[script.entry].push(script.path)
66-
: entryPoints[script.entry] = [script.path]
67-
);
68-
69-
// load global scripts using script-loader
70-
extraRules.push({
71-
include: globalScripts.map((script) => script.path), test: /\.js$/, loader: 'script-loader'
62+
// add entry points and lazy chunks
63+
globalScripts.forEach(script => {
64+
let scriptPath = `script-loader!${script.path}`;
65+
if (script.lazy) { lazyChunks.push(script.entry); }
66+
entryPoints[script.entry] = (entryPoints[script.entry] || []).concat(scriptPath);
7267
});
7368
}
7469

tests/e2e/tests/build/scripts-array.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {
22
writeMultipleFiles,
3-
expectFileToMatch
3+
expectFileToMatch,
4+
appendToFile
45
} from '../../utils/fs';
56
import { ng } from '../../utils/process';
67
import { updateJsonFile } from '../../utils/project';
@@ -16,6 +17,7 @@ export default function () {
1617
'src/common-entry-script.js': 'console.log(\'common-entry-script\');',
1718
'src/common-entry-style.css': '.common-entry-style { color: red }',
1819
})
20+
.then(() => appendToFile('src/main.ts', 'import \'./string-script.js\';'))
1921
.then(() => updateJsonFile('angular-cli.json', configJson => {
2022
const app = configJson['apps'][0];
2123
app['scripts'] = [
@@ -48,5 +50,7 @@ export default function () {
4850
<script type="text/javascript" src="scripts.bundle.js"></script>
4951
<script type="text/javascript" src="vendor.bundle.js"></script>
5052
<script type="text/javascript" src="main.bundle.js"></script>
51-
`));
53+
`))
54+
// ensure scripts aren't using script-loader when imported from the app
55+
.then(() => expectFileToMatch('dist/main.bundle.js', 'console.log(\'string-script\');'));
5256
}

0 commit comments

Comments
 (0)