将Select2导入Electron项目时出错

时间:2017-01-13 10:41:23

标签: npm gulp jquery-select2 electron rollupjs

我正在使用电子样板,从这里:https://github.com/szwacz/electron-boilerplate/

它使用gulp-rollup捆绑资产,并且可以使用npm start运行开发服务器。

以下是app.js的导入声明:

import os from 'os';
import { remote } from 'electron';
import jetpack from 'fs-jetpack';
import env from './env';

import jquery from 'jquery';
import parsley from 'parsleyjs';
import select2 from 'select2/dist/js/select2.js';

import { setupForm } from './form/form';

使用npm start初始加载时一切正常,但是一旦我编辑文件并保存,这会触发watch重新加载构建,我收到错误:

Error: Could not load select2/dist/js/select2.js (imported by /##/repo-name-example/src/app.js): ENOENT: no such file or directory, open 'select2/dist/js/select2.js'
at /##/repo-name-example/node_modules/rollup/dist/rollup.js:9428:10
at process._tickDomainCallback (internal/process/next_tick.js:129:7)

如果我取消这个过程并再次npm start,一切都很好。

为什么会忘记select2的位置?

1 个答案:

答案 0 :(得分:0)

由于您是使用文件路径手动导入它,而不是像jquery行那样使用命名导入,因此需要使用

import select2 from './select2/dist/js/select2.js';

注意开头的./。否则,它会有效地查找名为select2/dist/js/select2.js的模块,而不是使用路径。

您可能还需要将其更改为

import select2 from './node_modules/select2/dist/js/select2.js';

(假设文件夹所在的位置)