Rob*_*sen 13 javascript tinymce shim node.js webpack
我试图让TinyMCE的通过的WebPack认可.它设置了一个名为tinymceon 的属性window,所以显然有一个选项是require()使用这样的语法(在webpack文档的EXPORTING 部分的底部描述):
require("imports?window=>{}!exports?window.XModule!./file.js
但在这个例子中,如何./file.js解决?我通过npm安装了tinymce,我无法弄清楚如何指定tinymce.js文件的正确路径.
无论如何,我宁愿在我的配置中处理这个问题,并且require('tinymce')如果可能的话,我可以安装exports-loader并添加以下内容(基于此讨论):
module: {
loaders: [
{
test: /[\/]tinymce\.js$/,
loader: 'exports?tinymce'
}
]
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用.我的配置有什么问题?
Ale*_*erg 10
npm上的tinymce模块不能直接使用,但包含4个不同的库分布.即:
tinymce/tinymce.jstinymce/tinymce.min.jstinymce/tinymce.jquery.jstinymce/tinymce.jquery.min.js为了能够require('tinymce')在您的代码中执行,您可以在webpack配置中添加别名,以及为您选择的分发添加自定义加载程序.
resolve: {
alias: {
// require('tinymce') will do require('tinymce/tinymce')
tinymce: 'tinymce/tinymce',
},
},
module: {
loaders: [
{
// Only apply on tinymce/tinymce
include: require.resolve('tinymce/tinymce'),
// Export window.tinymce
loader: 'exports?window.tinymce',
},
],
},
Run Code Online (Sandbox Code Playgroud)
在哪里可以替换tinymce/tinymce您的选择分配.
就像@cchamberlain一样,我最终使用脚本加载器来进行tinymce,但是为了加载默认情况下不需要的插件和其他资源,我使用了CopyWebpackPlugin而不是ES6来获得更多可配置的解决方案.
var copyWebpackPlugin = require('copy-webpack-plugin');
module.exports = {
//...
plugins: [
new copyWebpackPlugin([
{ from: './node_modules/tinymce/plugins', to: './plugins' },
{ from: './node_modules/tinymce/themes', to: './themes' },
{ from: './node_modules/tinymce/skins', to: './skins' }
])
]
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39160 次 |
| 最近记录: |