Open dereklin opened 8 years ago
Did you retry to generate a project ? Could you send a github link, because I cannot reproduce it ?
@micaelmbagira Here is my github link: https://github.com/dereklin/ng2-danshui
I tried to run npm run build
Well, I cloned the project and ran npm install
and ./node_modules/.bin/jspm install
and then npm run build
or gulp serve
, everything works fine.
I am using windows 10, node v4.4.7, npm 3.10.5
using webpack works, but systemjs doesn't
I got the same problem using angular2 + systemjs + typescript.
@dereklin Can you make a fresh clone of the repo you sent and then run:
npm install
./node_modules/.bin/jspm install
npm run build
or gulp serve
@micaelmbagira same problem
[00:17:50] Finished 'other' after 405 ms
[00:17:50] Finished 'replaceTemplates' after 417 ms
[00:17:50] Starting 'systemjs'...
[00:17:52] 'systemjs' errored after 1.39 s
[00:17:52] Error on fetch for routes.ts at file:///c:/Users/Derek/sandbox/fountain/ng2-danshui/routes.ts
Loading .tmp\templates\index.ts
Error: ENOENT: no such file or directory, open 'c:\Users\Derek\sandbox\fountain\ng2-danshui\routes.ts'
at Error (native)
Unhandled rejection Error: Uncaught, unspecified "error" event. ([object Object])
at Gulp.emit (events.js:144:17)
at Gulp.src.emit (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\fwd\index.js:31:10)
at Object.error (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\undertaker\lib\helpers\createExtensions.js:61:10)
at handler (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\now-and-later\lib\mapSeries.js:43:14)
at f (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\once\once.js:17:25)
at f (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\once\once.js:17:25)
at done (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\async-done\index.js:24:15)
at bound (domain.js:287:14)
at runBound (domain.js:300:12)
at tryCatcher (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\bluebird\js\release\util.js:16:23)
at Promise._settlePromiseFromHandler (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\bluebird\js\release\promise.js:504:31)
at Promise._settlePromise (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\bluebird\js\release\promise.js:561:18)
at Promise._settlePromise0 (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\bluebird\js\release\promise.js:606:10)
at Promise._settlePromises (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\bluebird\js\release\promise.js:681:18)
at Async._drainQueue (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\bluebird\js\release\async.js:138:16)
at Async._drainQueues (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\bluebird\js\release\async.js:148:10)
at Immediate.Async.drainQueues [as _onImmediate] (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\bluebird\js\release\async.js:17:14)
at processImmediate [as _immediateCallback] (timers.js:383:17)
[00:17:53] The following tasks did not complete: default, build, <parallel>, systemjs
[00:17:53] Did you forget to signal async completion?
note, the second step is: "./node_modules/.bin/jspm" install
Obviously, there is an issue regarding the fact SystemJS is looking for routes.ts
in ng2-danshui
while it's in ng2-danshui/src
. Still, I cannot reproduce it... Are you able to try on another OS ?
@dereklin @micaelmbagira
It seems that this is an issue with file paths on Windows.
I just changed the following code ingulp_tasks/systemjs.js
from
conf.path.tmp('templates/index.ts'),
to
'.tmp/templates/index.ts',
and the problem is gone.
SystemJS builder takes an input module name as argument, which must use / in paths not . However, conf.path.tmp('templates/index.ts')
will return '.tmp\templates\index.ts' on Windows.
@msshli You did this right?:
builder.buildStatic(
// conf.path.tmp('templates/index.ts'),
'.tmp/templates/index.ts',
conf.path.tmp('index.js'),
I am now getting this error:
[22:01:50] Finished 'systemjs' after 6.58 s
[22:01:50] Starting 'build'...
[22:01:50] 'build' errored after 190 ms
[22:01:50] Error: Error: File not found with singular glob: c:\Users\Derek\sandbox\fountain\ng2-danshui\.tmp\jspm_packages\system.js
at DestroyableTransform.<anonymous> (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\gulp-useref\lib\streamManager.js:90:36)
at emitOne (events.js:82:20)
at DestroyableTransform.emit (events.js:169:7)
at emitOne (events.js:82:20)
at Through2.emit (events.js:169:7)
at OrderedStreams.<anonymous> (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\glob-stream\index.js:138:20)
at emitOne (events.js:77:13)
at OrderedStreams.emit (events.js:169:7)
at emitOne (events.js:77:13)
at DestroyableTransform.emit (events.js:169:7)
at Glob.<anonymous> (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\glob-stream\index.js:38:16)
at Glob.g (events.js:260:16)
at emitOne (events.js:77:13)
at Glob.emit (events.js:169:7)
at Glob._finish (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\glob-stream\node_modules\glob\glob.js:172:8)
at done (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\glob-stream\node_modules\glob\glob.js:159:12)
at Glob._processSimple2 (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\glob-stream\node_modules\glob\glob.js:652:12)
at c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\glob-stream\node_modules\glob\glob.js:640:10
at Glob._stat2 (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\glob-stream\node_modules\glob\glob.js:736:12)
at lstatcb_ (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\glob-stream\node_modules\glob\glob.js:728:12)
at RES (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\inflight\inflight.js:23:14)
at f (c:\Users\Derek\sandbox\fountain\ng2-danshui\node_modules\once\once.js:17:25)
[22:01:50] 'build' errored after 6.94 s
[22:01:50] 'default' errored after 7.01 s
@msshli it seems you're right https://github.com/systemjs/builder/issues/621
@micaelmbagira
I didn't have this problem before, but today it just showed up suddenly...
It turned out there's something wrong with gulp-replace
.
In updateIndexHtml
in systemjs.js
, try replace the following regular expression
/<script src="jspm_packages\/system.js">[\s\S]*System.import.*\n\s*<\/script>/
with
/<script src="jspm_packages\/system.js">[\s\S]*<\/script>/
The previous one seems to be correct but somehow gulp-replace fails to replace the following code in src/index.html:
<script src="jspm_packages/system.js"></script>
<script src="jspm.browser.js"></script>
<script src="jspm.config.js"></script>
<script>
System.import('src/index.ts');
</script>
I don't know if it is another Windows issue. Anyway, hope this help :)
To get SystemJS/jspm with Angular 1 working I had to modify src/index.js to include the src directory in the imports on Windows:
import techsModule from 'src/app/techs/index.js';
import 'angular-ui-router';
import routesConfig from 'src/routes.js';
import main from 'src/app/main.js';
import header from 'src/app/header.js';
import title from 'src/app/title.js';
import footer from 'src/app/footer.js';
It appears the project root is being used instead of the current directory for imports. I posted here because the file not found error was similar but it may be a separate issue.
routes.ts is in [root]/app folder But the build process is looking for it at the root folder:
Here is my .yo-rc.json
Here are the error messages when I run npm run build: